我正在将当前应用程序的 IAP 代码与我们的后端服务器绑定(bind)在一起。我正在考虑做的一件事是也用它来记录取消和/或失败的交易。
这就提出了这样的问题:这些类型的交易的 transactionIdentifier 是否被认为是唯一的?更具体地说,在取消的情况下,我不太确定它是否会生成一个临时标识符,然后将其替换为应用程序商店给出的标识符。如果是这样,临时值仍然是唯一的吗?
我确实在 Xcode 中注意到 SKPaymentTransaction 中的一个名为 _temporaryIdentifier
的数据成员,这让我思考了这种可能的情况。
请注意,我不必向我们的服务器显示已取消的交易。我只是觉得拥有它会有帮助。看来我可能确实需要发送失败,因为我相信不允许的延迟交易会导致失败。
最佳答案
不,不要指望它们是唯一的,对于除购买
或恢复
之外的任何状态,它们都被视为未定义。
documentation 中明确提到了这一点对于交易标识符
:
A string that uniquely identifies a successful payment transaction [...] The contents of this property are undefined except when transactionState is set to purchased or restored.
关于ios - 已取消的 SKPaymentTransaction 中 transactionIdentifier 的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45552892/