[英]SKPaymentTransaction's originalTransaction.transactionReceipt nil for restore on non-consumable
在調用 restoreCompletedTransactions 后,對於非消耗品,正在返回的 SKPaymentTransactions 在其 originalTransaction.transactionReceipt 屬性中似乎為零。 這是文檔說我們應該找到原始交易收據的地方:
有沒有人真的讓這不是零 - 如果是這樣,怎么辦?
在返回的 SKPaymentTransactions 中,看起來實際正確的 transactionReceipt 在他們的 transactionReceipt 屬性中(而不是他們的 originalTransaction.transactionReceipt 屬性)。
它也發生在我身上。
這很奇怪,但即使是,它的文檔在蘋果美國transactionReceipt
被發現originalTransaction
,我發現transactionReceipt
原SKPaymentTransaction
類。
所以,在選擇要傳遞的事務之前,我已經設置了一點檢查:
SKPaymentTransaction *passedTransaction = nil;
if (transaction.transactionReceipt) {
passedTransaction = transaction;
} else if (transaction.originalTransaction.transactionReceipt) {
passedTransaction = transaction.originalTransaction;
}
我也遇到了同樣的問題。 在恢復購買時,似乎originalTransaction
上的transactionReceipt
將始終返回nil。 來自針對transactionReceipt
的apple docs中的討論:
討論
除非將transactionState
設置為SKPaymentTransactionStateRestored
否則此屬性的內容是未定義的。
由於在(消耗品項目)的恢復期間, transactionState
始終設置為SKPaymentTransactionStatePurchased
,因此originalTransaction.transactionReceipt
屬性將始終為nil。
我發現original
transactionID
的 transactionID 是隨機的。 對於不同的交易可以是相同的原始交易,如果這不是恢復購買,您不應該依賴原始交易。
來自沙箱https://file.io/ReprC88b2K8Q的示例。 檢查原始交易的 transactionID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.