我正在测试我的应用内购买应用。当我在沙箱环境中第二次使用我的用户帐户购买我的耗材产品时,它总是向我显示一条警告“您已经购买了它但尚未下载。点击确定立即下载。”。有没有办法跳过警报?
感谢您的帮助。
答案 0 :(得分:15)
如果您在购买消耗品之后购买消耗品,则不应该看到此警报。如果是,那么您从未从队列中删除该事务。在商店允许您再次购买之前,您需要将其删除。
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
答案 1 :(得分:10)
好吧,我在网上搜索了好几个小时的解决方案!不要忘记为您的IAP经理添加交易观察员!
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
您的应用程序应在应用程序初始化期间将观察者添加到付款队列。如果没有观察者附加到队列,则支付队列不会将其待处理事务列表与Apple App Store同步,因为没有观察者响应更新的事务。
如果应用程序在仍在处理事务时退出,则这些事务不会丢失。下次启动应用程序时,支付队列将继续处理事务。您的应用程序应始终希望收到已完成交易的通知。
答案 2 :(得分:6)
这实际上相当复杂。 Apple在其交易过程中内置了此消息,因此,如果您让用户到达他们尝试重新购买他们已拥有的产品的位置,他们就会看到此消息。
您可以使用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
要恢复之前购买的任何交易,然后才能进入购买屏幕。在加载商店GUI之前运行restoreCompletedTransactions,然后锁定在成功完成交易时解锁的任何内容的购买按钮。
答案 3 :(得分:2)
如果您使用非沙盒ID或错误的沙箱ID登录,则在ad-hoc构建中使用完全有效的代码也会发生这种情况 - 例如来自与应用程序签名的证书不同的开发程序用。例如,像个人与公司一样。
答案 4 :(得分:2)
确保已在处理所有请求的控制器中添加了这段代码。
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
答案 5 :(得分:2)
即使我添加了事务观察器并且还从队列中删除了删除事务,我也遇到了同样的问题。我能够通过清理我的配置文件来修复它:
转到配置门户并检查您的分发/开发者配置文件是否仍然有效 - 必要时续订或至少通过删除设备并再次添加来刷新它们。
转到XCode中的管理器并删除所有配置文件,而不是点击刷新。
从您的测试设备中删除您的应用和所有应用配置资料
从appstore退出当前的测试用户,稍后再次登录 你的应用内购买东西会要求你这样做。
在您的应用中购买商品时,清洁,构建并与测试用户一起登录
祈祷它也适合你!
答案 6 :(得分:1)
我刚刚创建了一个新帐户后修复了问题。我认为Apple的系统只是备份并且暂时搞砸了帐户。
祝你好运!