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