【发布时间】:2011-02-14 03:45:35
【问题描述】:
我的应用正在使用应用内购买,我的大多数用户都可以正常购买,没有任何问题。对于这些人来说,我的应用会在购买成功后下载内容,他们很高兴。
但是,对于我越来越多的用户而言,一旦他们成功完成应用内购买,之后每次启动应用时都会要求他们输入 App Store 密码。我相信这发生在以下电话中:
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
我根据 Apple 应用内购买指南中的第 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
我的猜测是,出于某种原因,Apple 的应用内购买服务器没有注册交易成功完成 - 即使我打电话
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
交易完成且我的内容已成功下载。
2 个问题:
还有其他人看到这个吗?
有人有修复建议吗?
赏金编辑:
这是使用不同 Apple-ID 进行的交易。这就是为什么它无法完成,除非您在对话框中输入正确的凭据。问题应该是:
- 如何防止此类死交易(交易未完成,用户无网络,同时更改App-ID)?
- 如何修剪
SkPaymentQueue?
【问题讨论】:
-
我也遇到过这种情况。
-
它必须依赖于某个已被另一个 AppStore-Account 中断的事务:stackoverflow.com/questions/6971740/…。用户必须尝试他曾经使用过的所有 AppStore-Accounts,如果他找到了正确的,该消息将不会再次出现。但这不可能是解决方案。已确保不会弹出与旧/以前的 AppStore-Accounts 的交易。也许那是苹果的“Bug”?
-
你在哪里添加了你的事务观察者?
-
@montuno 你是怎么解决这个问题的?
-
测试服务器上的 iTunes 有时会有点不稳定。在我的应用程序中,在我拨打
[[SKPaymentQueue defaultQueue] addTransactionObserver:paymentProcessorDelegate];后,它会不断要求验证。它偶尔会这样做,仅在今天,所以我期待这个问题稍后会以某种方式“自行修复”。
标签: iphone app-store itunes in-app-purchase passwordbox