2013-02-12 25 views
3

調用restoreCompletedTransactions後,對於非消耗品,返回的SKPaymentTransactions似乎在其originalTransaction.transactionReceipt屬性中爲零。這是該文件說,我們應該發現,原來transactionReceipt:SKPaymentTransaction的originalTransaction.transactionReceipt無用於在非消耗品上恢復

https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html#//apple_ref/doc/uid/TP40008267-CH3-SW2

有沒有人真正得到這個是不是nil - 如果是這樣,怎麼樣?

在返回的SKPaymentTransactions中,它看起來像實際正確的transactionReceipt在其transactionReceipt屬性(而不是它們的originalTransaction.transactionReceipt屬性)中。

+0

鏈接已死,ps。 – Hyperbole 2013-10-11 15:59:02

回答

3

它也發生在我身上。

這很奇怪,但即使該transactionReceiptoriginalTransaction發現它的文檔在蘋果美國,我發現transactionReceiptSKPaymentTransaction類。

所以,我建立了一個小檢查選擇哪個交易開始前傳遞:

SKPaymentTransaction *passedTransaction = nil; 
if (transaction.transactionReceipt) { 
    passedTransaction = transaction; 
} else if (transaction.originalTransaction.transactionReceipt) { 
    passedTransaction = transaction.originalTransaction; 
}
+1

聽起來像一個黑客而不是解決方案,但仍然是我可以使用的... – 2013-10-16 11:48:17

+0

感謝您。絕對看起來像iOS SDK中的錯誤,但至少這可以讓我們驗證恢復的事務。 – Michael 2014-01-28 04:50:30

+0

代碼錯誤。 'transaction.transactionReceipt'的類型是NSData *,而不是SKPaymentTransaction *。我會留給你重寫,因爲有兩個可能的重寫。 – bitwise 2016-06-23 20:54:56

2

我也遇到了同樣的問題。看起來originalTransaction上的transactionReceipt在恢復購買時總是返回零。從蘋果文檔的探討transactionReceipt

Discussion
此屬性的內容是不確定的,當transactionState設置爲SKPaymentTransactionStateRestored除外。

由於在恢復(消耗品的)期間,transactionState始終設置爲SKPaymentTransactionStatePurchased,因此originalTransaction.transactionReceipt屬性始終爲零。

+1

文檔狀態:「transactionState'設置爲」SKPaymentTransactionStateRestored'時除外「 https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKPaymentTransaction_Class/Reference/Reference.html#//apple_ref/ occ/instp/SKPaymentTransaction/originalTransaction 仍然有同樣的問題 – 2013-10-16 11:43:43

+0

不僅如此,而且originalTransaction與原始事務不相同! – Buddy 2014-07-10 04:02:18

+0

@michaelFG雖然NSLog聲明transaction.originalTransaction.transactionReceipt爲null,但當我將此值傳遞給[NSUserDefaults standardUserDefaults]變量時,會添加正確的收據。暮光之城... – 2017-01-22 17:50:10

相關問題