use*_*047 20 iphone in-app-purchase
我正在测试我的应用内购买应用.当我在沙箱环境中第二次使用我的用户帐户购买我的耗材产品时,它总是向我显示一条警告"您已经购买了它但尚未下载.点击确定立即下载.".有没有办法跳过警报?
谢谢你的帮助.
Bra*_*don 15
如果您在购买消耗品之后购买消耗品,则不应该看到此警报.如果是,那么您从未从队列中删除该事务.在商店允许您再次购买之前,您需要将其删除.
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
Run Code Online (Sandbox Code Playgroud)
Kju*_*uly 10
好吧,我在搜索网络几个小时后的解决方案!不要忘记为您的IAP经理添加交易观察员!
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
Run Code Online (Sandbox Code Playgroud)
您的应用程序应在应用程序初始化期间将观察者添加到支付队列.如果没有观察者附加到队列,则支付队列不会将其待处理事务列表与Apple App Store同步,因为没有观察者响应更新的事务.
如果应用程序在仍处理事务时退出,则这些事务不会丢失.下次启动应用程序时,支付队列将继续处理事务.您的应用程序应始终期望收到已完成交易的通知.
这实际上相当复杂.Apple在其交易过程中内置了此消息,因此,如果您让用户尝试重新购买他们已拥有的产品,他们就会看到此消息.
您可以使用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
Run Code Online (Sandbox Code Playgroud)
要恢复他们之前购买的任何交易,然后才能进入购买屏幕.在加载商店GUI之前运行restoreCompletedTransactions,然后锁定在成功完成事务时解锁的任何内容的购买按钮.