在收到苹果应用内购买的购买收据之前失去连接

Lost connectivity before receiving purchase receipt from apple In-app purchase

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

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

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

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

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

好吧,我为避免这种情况所做的是,在交易开始时以及在我向服务器发送数据时将值更改为“没有".

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

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