我使用服務器端收據驗證。當服務器收據驗證失敗時,我應該調用finishTransaction嗎?
當客戶的
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
被調用,transactionState
是SKPaymentTransactionStatePurchased
, 客戶發送收據到我們的服務器, 和我們的服務器進行驗證。
當服務器端收據驗證成功時, 客戶端顯然調用finishTransaction
,沒問題。
當服務器端收據驗證失敗時, 因爲apple臨時返回非json,或者客戶端發送無效收據,或者其他東西, 服務器將該信息返回給客戶端。
接下來,我們的客戶應該做什麼? 我們應該叫finishTransaction
?
這導致無效的交易永遠在隊列中生活? 喜歡在這個問題上說:iPhone in-app purchase: receipt verification
但是,如果你發現收據是無效的,你要完成相關交易。如果沒有,您可能會在交易隊列中永遠存在額外的交易。這意味着,每個應用程序運行時,paymentQueue:updatedTransaction:將每筆交易調用一次...
但是,如果我們這樣做finishTransaction
,我們寶貴的用戶是通過此收據收取(我們未能驗證)對?
或者驗證失敗的交易在某段時間內過期了嗎?
這是記錄在蘋果文檔的某處嗎? 我找不到任何http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html
我經常看到這個評論,關於只要提供的內容無論如何,如果收據失敗。如果你打算這麼做,爲什麼要經歷驗證收據的麻煩?只是好奇你的意見。 – Scooter 2017-03-05 01:17:48