我有一个非常恼人的问题,在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问题是,它可能在前一次被调用,但我在调用之前崩溃/退出。
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
因为从来没有为这个事务调用过finishTransaction:,所以它仍然是挂起的,但是应该用这个事务调用paymentQueue:updatedTransactions:,对吗?
编辑::在每次启动时,iTunes都会询问我的密码,但是给出密码与否并不会改变问题的任何方面。
发布于 2015-05-28 09:24:00
现在已经修好了。
我使用的是远程通知SDK,它也在跟踪购买情况(因此我能够向特定的付费用户发送通知)。SDK在支付系统之前添加了一个transactionObserver,它没有对它做任何事情。这意味着调用了updateTransaction方法,但只有远程通知SDK才知道此更新。
在联系了支持之后,他们确信它在最新的SDK版本中得到了修正,并且升级了它。
https://stackoverflow.com/questions/30260393
复制相似问题