我在使用Mac的StoreKit框架解决应用内购买问题时遇到了麻烦。问题是:
1)开始购买时调用addPayment方法
2)然后使用事务状态SKPaymentTransactionStatePurchasing调用两次updatedTransactions方法。第二次调用后,[SKPaymentQueue defaultQueue.transactions count]返回2。
3)购买完成时,第三次调用updatedTransactions,交易状态为SKPaymentTransactionStatePurchased。[SKPaymentQueue defaultQueue.transactions count]返回3。
4)然后我使用状态SKPaymentTransactionStatePurchased执行finishTransaction。但在defaultQueue中仍然有两个与SKPaymentTransactionStatePurchasing的交易。他们一直活着直到应用程序终止。当我再次启动app时,这个问题又出现了。
为什么只有一个addPayment调用需要这么多事务?如何解决这个问题?
发布于 2015-12-23 01:19:41
确保在以下任何事务状态后调用finishTransaction方法:
1) SKPaymentTransactionStatePurchased
2) SKPaymentTransactionStateFailed
3) SKPaymentTransactionStateRestored
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];在事务上调用finishTransaction:会将其从队列中删除。
https://stackoverflow.com/questions/34220722
复制相似问题