StoreKit多个交易

时间:2015-12-11 10:01:06

标签: xcode osx-yosemite storekit

我使用适用于Mac OS的StoreKit框架解决了使用应用内购买的问题。问题是:

1)我在购买开始时调用addPayment方法

2)然后使用事务状态SKPaymentTransactionStatePurchasing调用两次updatedTransactions方法。并且在第二次调用[[SKPaymentQueue defaultQueue] .transactions count]之后返回2.

3)当购买完成updatedTransactions第三次调用事务状态SKPaymentTransactionStatePurchased。并且[[SKPaymentQueue defaultQueue] .transactions count]返回3.

4)然后我用状态SKPaymentTransactionStatePurchased完成事务。但是在defaultQueue中仍然存在两个与SKPaymentTransactionStatePurchasing的交易。他们活着直到应用程序终止。当我再次启动应用程序时,问题会重复出现。

为什么只有一个addPayment调用这么多交易?这个问题怎么解决?

1 个答案:

答案 0 :(得分:1)

确保在以下任何事务状态之后调用finishTransaction方法:

1)SKPaymentTransactionStatePurchased

2)SKPaymentTransactionStateFailed

3)SKPaymentTransactionStateRestored

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

调用finishTransaction:对事务将其从队列中删除。

相关问题