SKPaymentTransaction 卡住了
SKPaymentTransaction stuck
关于 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
问题是它可能在上次调用过,但我在调用
之前 crashed/quit
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
由于从未为该交易调用 finishTransaction:
,因此它仍然处于待定状态是正常的,但应该为该交易调用 paymentQueue:updatedTransactions:
,对吗?
编辑:每次启动时 iTunes 都会询问我的密码,但输入或不输入密码都不会改变问题。
现在已修复。
我使用的是远程通知 SDK,它也在跟踪购买(因此我能够向特定的付费用户发送通知)。 SDK 在支付系统之前添加了一个 transactionObserver,但它没有对它做任何事情。这意味着调用了 updateTransaction 方法,但只有远程通知 SDK 知道此更新。
在联系支持人员后,他们保证它已在最新的 SDK 版本中得到修复,升级后就成功了。
关于 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
问题是它可能在上次调用过,但我在调用
之前 crashed/quit[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
由于从未为该交易调用 finishTransaction:
,因此它仍然处于待定状态是正常的,但应该为该交易调用 paymentQueue:updatedTransactions:
,对吗?
编辑:每次启动时 iTunes 都会询问我的密码,但输入或不输入密码都不会改变问题。
现在已修复。
我使用的是远程通知 SDK,它也在跟踪购买(因此我能够向特定的付费用户发送通知)。 SDK 在支付系统之前添加了一个 transactionObserver,但它没有对它做任何事情。这意味着调用了 updateTransaction 方法,但只有远程通知 SDK 知道此更新。
在联系支持人员后,他们保证它已在最新的 SDK 版本中得到修复,升级后就成功了。