我在iOS(耗材)上购买应用程序时遇到了一个非常烦人的问题 .
案例
-
我创建了一个付款请求
-
我输入凭据并确认购买 .
-
我在Apple确认购买之前退出了应用程序
-
然后我从跳板(应用程序被杀)接收弹出窗口,说付款已处理完毕 .
问题
当我再次启动我的应用程序时,我添加了一个事务观察器(正在实现的所有委托方法):
[[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:
从未被调用此事务,因此's normal it'仍然未决,但 paymentQueue:updatedTransactions:
应该通过此事务调用吗?
Edit: 我在每次发布时都被iTunes要求输入密码,但是否提供密码不会改变问题 .
1 回答
这已经修复了 .
我正在使用远程通知SDK,它也在跟踪购买(因此我能够向特定的付费用户发送通知) . SDK在支付系统之前添加了一个transactionObserver,它没有对它做任何事情 . 这意味着调用了updateTransaction方法,但只有远程notif SDK知道此更新 .
在联系支持人员之后,他们确信它已在最新的SDK版本中修复,升级后就可以了 .