ios - 已取消的 SKPaymentTransaction 中 transactionIdentifier 的唯一性

标签 ios iphone in-app-purchase storekit

我正在将当前应用程序的 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/

相关文章:

ios - Alamofire swift 库版本 4.4 未安装在 swift 3.0.2 项目中

iphone - 更改 UIView 的图层类

iphone - slider /文本框交换数据

android - 自动续订订阅 android Version_3

ios - 未找到应用内购买产品

ios - 错误: Undefined symbols for architecture arm64 when Embed Unity(Vuforia) in IOS project(swift)

ios - 使用关联类型创建元组

iOS Storekit 导致实时应用程序崩溃

ios - 当我点击表格 View 中的任何单元格时,单元格不会替换

ios - NSDateFormatter日期转换不正确