我是 ios 开发的新手。我在我的应用中添加了应用内购买,并成功从应用商店获取产品数据。iap 是消耗品。当我调用“addPayment:”方法时,我得到“确认您的应用内购买... [环境:沙盒]”问题。我单击是,然后我收到一条消息,上面写着:“您已经购买了它,但尚未下载。点击确定立即下载。[环境:沙盒]”。如果有人有任何想法有什么问题?
3 回答
当用户购买他们已经购买的东西时,就会发生这种情况。鉴于您正在使用消耗品,您需要确保在向用户提供他们购买的东西时向 Apple 购买服务器发送消费/供应请求。
你上传内容了吗?
此应用内购买目前无法在沙盒环境中进行测试,因为您已选择通过 Apple 托管您的内容,但尚未交付您的内容。上传您的内容以在沙盒中测试此应用内购买。
我也有类似的情况;通过重新启动我的 iPhone 解决(按住主页/电源按钮,直到出现白色苹果徽标黑色背景)。
具体来说,我在 Apple 的服务器上进行了非消耗性购买。将应用程序安装到 iphone5,进行购买。删除应用程序,在另一个版本中重新安装,并在恢复PreviousPurchasedTransactions 时,ITunesStore 服务器没有响应我的托管联系人产品标识符。(尽管它确实响应并恢复了其他一些非托管的测试购买)。再次购买托管内容项目会产生错误“您已经购买了此应用内购买,但尚未下载。”;警报没有下载选项。我找到了这个网站, http: //support.nimblebit.com/customer/portal/articles/672080-problem-making-in-app-purchase-ios-os-x;重新启动我的设备,现在恢复可以识别以前的购买。
我不知道究竟是什么触发了这个问题,但请注意,我一直在对这个托管内容项目的下载进行广泛的测试,在下载完成之前调试和结束程序。我有代码,在启动时,可以发现未完成的事务并完成它们。所以最终调用了 FinishTransaction。在此错误发生时,paymentQueue 中没有未完成的交易。我唯一的猜测是,在下载过程中的某个时刻突然终止应用程序会在设备上留下一个完整的标志,表明该项目正在下载,因此无法恢复,如果是这种情况,幸运的是在重新启动时重置设备。