SKPaymentTransaction 卡住了

SKPaymentTransaction stuck

关于 iOS(消耗品)的应用内购买,我遇到了一个非常烦人的问题。

案例

问题

当我再次启动我的应用程序时,我添加了一个事务观察器(所有委托方法都被实现)做:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

之后我立即记录未决交易及其当前状态:

    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    /*
       Logging the content of[SKPaymentQueue defaultQueue].transactions
       shows a transaction with a state of SKPaymentTransactionStatePurchased
    */

但是这个交易似乎被阻止了,因为它从不调用

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

问题是它可能在上次调用过,但我在调用

之前 crashed/quit

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

由于从未为该交易调用 finishTransaction:,因此它仍然处于待定状态是正常的,但应该为该交易调用 paymentQueue:updatedTransactions:,对吗?

编辑:每次启动时 iTunes 都会询问我的密码,但输入或不输入密码都不会改变问题。

现在已修复。

我使用的是远程通知 SDK,它也在跟踪购买(因此我能够向特定的付费用户发送通知)。 SDK 在支付系统之前添加了一个 transactionObserver,但它没有对它做任何事情。这意味着调用了 updateTransaction 方法,但只有远程通知 SDK 知道此更新。

在联系支持人员后,他们保证它已在最新的 SDK 版本中得到修复,升级后就成功了。