【问题标题】:Lost connectivity before receiving purchase receipt from apple In-app purchase在收到来自苹果应用内购买的购买收据之前失去连接
【发布时间】:2018-02-27 11:26:21
【问题描述】:

我已经在我的应用中实现了应用内购买。所以我要做的是,在用户通过应用商店完成付款后,控制权转到

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions

然后我将购买收据更新到我们的服务器。其余操作由服务器完成。

但是我们的一位用户遇到了一个问题,他完成了付款,但在调用上述方法之前他失去了互联网连接。结果,我们的应用程序不知道付款。

我知道收据存储在设备中。但是每次用户使用应用程序时,将收据从设备发送到服务器是否正确?

【问题讨论】:

    标签: ios in-app-purchase receipt-validation


    【解决方案1】:

    好吧,我为避免这种情况所做的是,在交易开始时保持检查(如布尔值:transactionInProgress),当我将数据发送到服务器时,我将值更改为“NO强>”。

    下次应用连接时以这种方式。只需检查 transactionInProgress 是否已检查,如果是,则正在进行交易,您可以使用

    获取必须由 SKPaymentTransactions 存储的收据
    NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
    NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
    if (!receipt) { /* No local receipt -- handle the error. */ }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-28
      • 2011-10-12
      • 1970-01-01
      • 2017-11-16
      • 2010-11-20
      相关资源
      最近更新 更多