我当时正在寻找this线程 .
据说App Store调用paymentQueue并使用 transaction.transactionState==SKPaymentTransactionStateRestored
发布交易 .
但是我没有接到这些电话 . 我正在测试
-
与
sandbox
帐户/订阅,过期并每3分钟自动续订一次; -
没有验证收据 .
这样,我的updatedTransaction方法在第一次购买后永远不会被调用 .
无论如何,如果我以后恢复完成的交易,我会收到所有的收据 .
有沙箱的经验吗?另外,需要点2)或(我认为)它是可选的吗?
1 回答
状态:
SKPaymentTransactionStateRestored
仅在您在用户的设备上有收据并且用它来进行交易时才会确定 . 如果您没有收据,则需要拨打restoreCompletedTransactions
来决定是否应用自动续订的订阅 .您没有收据的情况是用户购买
auto-renewable
订阅,然后删除应用程序或在其他设备上安装应用程序 . 在其他情况下,您可以安全地将收据存储在设备上 .问题是在用户购买了
auto-renewing
订阅并且需要激活内容时检测到这种情况 . 如果没有收据,如果触发交易,它将以状态SKPaymentTransactionStateFailed
失败 . 查看错误代码,您将看到SKErrorPaymentCancelled
. 据我所知,这是苹果公司的一个漏洞 . 您需要为应用程序做出最佳决策来处理它:/