已取消的 SKPaymentTransaction 中 transactionIdentifier 的唯一性
Uniqueness of transactionIdentifier in canceled SKPaymentTransaction
我正在将我当前应用程序的 IAP 代码与我们的后端服务器绑定在一起。我想做的一件事是也用它来记录取消的 and/or 失败的交易。
这就提出了一个问题,即这些交易类型的交易标识符是否被认为是唯一的?更具体地说,在取消的情况下,我不太确定它是否正在生成一个临时标识符,然后用 App Store 提供的标识符替换它。如果是这样,温度仍然是唯一的吗?
我碰巧在 Xcode 中注意到 SKPaymentTransaction 中一个名为 _temporaryIdentifier
的数据成员,这让我想到了这种可能的情况。
请注意,我不必向我们的服务器显示已取消的交易。我只是认为拥有它会有所帮助。看来我可能确实需要发送失败,因为我相信不允许的延迟交易会导致失败。
不,不要指望它们是独一无二的,对于 purchased
或 restored
以外的任何状态,它们都被视为 未定义。
在 documentation 中明确提到 transactionIdentifier
:
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.
我正在将我当前应用程序的 IAP 代码与我们的后端服务器绑定在一起。我想做的一件事是也用它来记录取消的 and/or 失败的交易。
这就提出了一个问题,即这些交易类型的交易标识符是否被认为是唯一的?更具体地说,在取消的情况下,我不太确定它是否正在生成一个临时标识符,然后用 App Store 提供的标识符替换它。如果是这样,温度仍然是唯一的吗?
我碰巧在 Xcode 中注意到 SKPaymentTransaction 中一个名为 _temporaryIdentifier
的数据成员,这让我想到了这种可能的情况。
请注意,我不必向我们的服务器显示已取消的交易。我只是认为拥有它会有所帮助。看来我可能确实需要发送失败,因为我相信不允许的延迟交易会导致失败。
不,不要指望它们是独一无二的,对于 purchased
或 restored
以外的任何状态,它们都被视为 未定义。
在 documentation 中明确提到 transactionIdentifier
:
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.