我检查并处理服务器端的IAP收据(消耗品),只有在应用程序恢复正常时才在应用程序上调用 [[SKPaymentQueue defaultQueue] finishTransaction:transaction]
.
当服务器没有返回时(无论出于何种原因),应用程序正确无法完成事务 .
我现在的问题是:应用程序需要做什么才能再次接收收据以进行重试,或者iOS通过调用 - (void)paymentQueue:(SKPaymentQueue *)队列updatedTransactions:(NSArray *)transactions来处理这个问题 . ?当我重新启动我的应用程序时,该项目被重新提交;但是用户不需要重新启动应用程序 .
相关问题:当我再次尝试购买尚未处理的项目时(在沙箱上),我收到了一条iOS警报,说我之前购买但未下载 . 为什么是这样?我希望(并且实际上已经看到)非消耗品 . 我可以购买另一种消耗品,前一种消费品仍在等待中 .
2 回答
完成CONSUMABLE IN-APP的交易后,下面的方法将触发添加此语句“[[SKPaymentQueue defaultQueue] finishTransaction:transaction]”以删除购买的产品 . 使用此语句可以避免警报消息(我之前购买过)但没下载) .
下次App添加事务观察器时,事务将显示在队列中 .
也许这就是为什么你得到“尚未下载”的消息 - 这意味着'应用程序商店尚未获得finishTransaction' .