我的应用使用应用内购买,大多数用户可以顺利购买而没有任何问题。对于这些用户,我的应用会在购买成功后下载内容,他们也很满意。
然而,越来越多的用户,在完成一次成功的应用内购买后,每次启动应用程序时都被要求输入他们的App Store密码。我认为这是发生在调用以下函数时:
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
根据苹果的应用内购买指南中的第6步,我在启动时调用了以下函数:
- 存档指南:https://web.archive.org/web/20130515222703/https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/AddingaStoretoYourApplication/AddingaStoretoYourApplication.html
- 实际指南:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/DeliverProduct.html#//apple_ref/doc/uid/TP40008267-CH5-SW4
我猜测是因为某种原因,苹果应用内购买服务器没有成功注册交易完成的事实 - 即使我调用了该方法。
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
当交易完成并且我的内容已经成功下载时。
2个问题:
还有其他人看到这个问题吗?
有人有建议的修复方法吗?
悬赏编辑:
这是一个使用不同的Apple-ID进行的交易。因此,除非您在对话框中输入正确的凭据,否则无法完成交易。问题应该是:
- 如何防止这种死亡交易(交易未完成,用户没有网络,同时更改了App-ID)?
- 如何修剪
SkPaymentQueue
?
[[SKPaymentQueue defaultQueue] addTransactionObserver:paymentProcessorDelegate];
后,它会不停地要求验证。这种情况是偶尔发生的,并且仅在今天出现,因此我期望问题会在以后某个时候“自行解决”。 - bobobobo