Iphone “如何跳过警报”;你';我已经买了这个,但还没有';“尚未下载”;
我正在测试我的应用内购买应用程序。当我在沙盒环境中使用我的用户帐户第二次购买耗材时,它总是向我显示一个警报:“您已经购买了此产品,但尚未下载。点击“确定”立即下载。”。有没有办法跳过警报Iphone “如何跳过警报”;你';我已经买了这个,但还没有';“尚未下载”;,iphone,in-app-purchase,Iphone,In App Purchase,我正在测试我的应用内购买应用程序。当我在沙盒环境中使用我的用户帐户第二次购买耗材时,它总是向我显示一个警报:“您已经购买了此产品,但尚未下载。点击“确定”立即下载。”。有没有办法跳过警报 谢谢你的帮助 这实际上相当复杂。苹果在其交易过程中内置了这条信息,因此如果你让用户尝试回购他们已经拥有的产品,他们会看到这条信息 你可以用 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 恢复他们在进入“购买”屏幕之前购买的任何交易
谢谢你的帮助 这实际上相当复杂。苹果在其交易过程中内置了这条信息,因此如果你让用户尝试回购他们已经拥有的产品,他们会看到这条信息 你可以用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
恢复他们在进入“购买”屏幕之前购买的任何交易。在加载商店GUI之前运行restoreCompletedTransactions,然后锁定交易成功完成时未锁定的任何内容的“购买”按钮。如果您在购买消耗品后已经购买消耗品,则不应看到此警报。如果是,则从未从队列中删除该事务。在商店允许您再次购买之前,您需要将其删除
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
如果您使用非沙盒ID登录,或者沙盒ID错误(如来自与应用程序签名证书不同的开发程序),则在临时构建中使用完全有效的代码时也会发生这种情况。比如个人与公司。好吧,我在网上搜索了几个小时后的解决方案!不要忘记为您的IAP经理添加事务观察者
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
在应用程序初始化期间,应用程序应向支付队列添加一个观察者。如果没有观察员附加到队列,则支付队列不会将其挂起交易列表与Apple App Store同步,因为没有观察员响应更新的交易
如果应用程序在事务仍在处理时退出,则这些事务不会丢失。下次应用程序启动时,支付队列将继续处理交易。您的应用程序应该总是希望收到已完成事务的通知
确保您已在处理所有请求的控制器中添加了这段代码
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
我只是在创建了一个新帐户后修复了这个问题。我认为苹果的系统只是得到了备份,并在一段时间内搞乱了账户
祝你好运 即使我添加了事务观察器,也从队列中删除了事务,我还是遇到了同样的问题。我可以通过清理我的资源调配配置文件来修复它:
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
不,使用耗材时,restoreCompletedTransactions没有任何用处。请注意,当调用
restoreCompletedTransaction
时,密码输入屏幕将弹出,用户可能不知道原因。请注意,如果这样做,用户将需要输入用户名和密码。可能最好留一个按钮,用户可以从设置菜单中按下。这并不能解决“您已经购买了此软件,但尚未下载,但我们不允许开发人员再次触发下载”错误。您找到解决方案了吗。。。我在这里也遇到了同样的问题。不幸的是,这并没有解决我的问题。没错。另外,请确保在重新启动模拟器/设备后调用paymentQueue:updatedTransactions:并检查挂起事务的状态。在某些情况下,您必须调用finishTransaction。在FWIW部门,只需重新启动我的iPad Mini(运行7.0.4)即可恢复“正常”的沙盒行为(不会干扰配置文件-尽管我下一步将尝试上述步骤!)