我在收到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
看起来原始交易标识符匹配(它是一个新的购买,为什么会匹配?),但另外两个不匹配。它们来自哪里,又是什么匹配的?我不理解两者之间的关系和它们的重要性。