已取消的 SKPaymentTransaction 中 transactionIdentifier 的唯一性

Uniqueness of transactionIdentifier in canceled SKPaymentTransaction

我正在将我当前应用程序的 IAP 代码与我们的后端服务器绑定在一起。我想做的一件事是也用它来记录取消的 and/or 失败的交易。

这就提出了一个问题,即这些交易类型的交易标识符是否被认为是唯一的?更具体地说,在取消的情况下,我不太确定它是否正在生成一个临时标识符,然后用 App Store 提供的标识符替换它。如果是这样,温度仍然是唯一的吗?

我碰巧在 Xcode 中注意到 SKPaymentTransaction 中一个名为 _temporaryIdentifier 的数据成员,这让我想到了这种可能的情况。

请注意,我不必向我们的服务器显示已取消的交易。我只是认为拥有它会有所帮助。看来我可能确实需要发送失败,因为我相信不允许的延迟交易会导致失败。

不,不要指望它们是独一无二的,对于 purchasedrestored 以外的任何状态,它们都被视为 未定义

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.