【发布时间】:2020-08-27 00:48:20
【问题描述】:
我已经为此苦苦挣扎了几天。我希望我现在明白了,但我想和你一起检查一下。
每笔交易都有一个 SKPaymentTransaction。在常规购买中,原始交易属性为空。在恢复或自动续订中,原始交易是原始交易 SKPaymentTransaction。
在我看来,棘手的部分是收到的收据。所以收据中的每笔交易都包含一个 transaction_id 和一个 original_transaction_id。在一次性购买中它们是相同的,在订阅中,original_transaction_id 是用户订阅的第一笔交易的 transaction_id。
所以我的第一个问题:如果我想在收据中检查购买的有效性 -> SKPayment 交易的 transactionID 仅出现在收据中,如果它不是恢复或续订。否则 SKPaymentTransaction transactionID 不在收据中。但由于在这些情况下 SKPaymentTransaction 具有 originalTransaction 属性,因此 originalTransaction.transactionID 出现在收据中。对吗?
现在我一直在努力解决的问题,第二个问题:所以 SKPaymentTransaction 的 originalTransaction 属性不一定与收据中的 original_transaction_id 有任何关系,对吗?我的意思是有几个续订的订阅 - 如果我恢复它们,我会得到一个带有交易 ID 的 SKPaymentTransaction,它不在收据中。然后我取这个 SKPaymentTransaction 的 originalTransaction.transactionID 并在收据中查找它,但不是在 original_transaction_id 字段中,而是在收据的 transaction_id 字段中,对吗?
我希望我现在明白了..我真的认为 Apple 的文档相当混乱..
【问题讨论】:
标签: subscription storekit receipt-validation