【发布时间】:2018-01-24 02:17:40
【问题描述】:
在收到SKPaymentTransactionStatePurchased 通知后,我正在使用收据来验证购买,除此之外,还可以获取用户刚刚购买的订阅的到期日期。
为了正确识别收据中刚刚发生的交易,我使用transaction.transactionIdentifier 和transaction_id 进行匹配。我遇到的问题是交易标识符永远不会匹配。
我已经能够通过手动检查purchase_date 和product_id 来识别收据中的正确交易,但transaction_id 与交易完全不同。
我还查看了transaction.originalTransaction.transactionIdentifier 和original_transaction_id,但这四个值似乎在任何时候都不匹配。
这里发生了什么?在沙盒中测试时有人遇到过类似的问题吗?文档明确指出transaction_id 应与事务的transactionIdentifier 属性匹配。这可能是一个错误吗?
编辑 1: 这是单次购买订阅(之前已过期)的不同交易标识符
transaction.transactionIdentifier = 1000000325087359
transaction.originalTransaction.transactionIdentifier = 1000000297785006
transaction_id = 1000000325087377
original_transaction_id = 1000000297785006
似乎原始交易标识符匹配(为什么会匹配,这是新购买?),但其他两个不匹配。它们来自哪里,它们匹配什么?我不明白两者之间的关系及其意义。
【问题讨论】:
-
我遇到了同样的问题:stackoverflow.com/questions/68165228/…
标签: ios storekit receipt-validation