2012-03-04 78 views
1

我已經實施了兩個月前在我的兩個應用程序中的應用程序自動更新訂閱。我存儲了用戶的舊收據,並在訂閱期結束時與我的服務器聯繫,以檢查訂閱是否仍處於活動狀態。 我注意到我的一些用戶正在自動更新客戶端代碼本身。 我的應用程序在輸入呼叫時[[SKPaymentQueue defaultQueue] addTransactionObserver:myObserver],當SKPaymentTransactionStatePurchasedSKPaymentTransactionStateRestored被返回時,它會調用我的服務器來驗證收據並給我的用戶訂閱。在應用程序購買訂閱自動更新

我一直在嘗試了很長時間才明白客戶在續訂期結束時獲得的交易通知背後的邏輯。有誰知道爲什麼只有一些用戶得到通知,其餘的則需要服務器重新驗證他們的收據?我試着想,也許這跟調用addTransactionObserver有關。也許這些用戶在應用程序處於後臺時殺死了應用程序,並在訂閱期結束後再次進入應用程序,導致addTransactionObserver:被觸發並且通知到達。 如果我可以讓所有用戶獲得此通知,那麼在訂閱期結束時,我不必再運行服務器調用,因爲它們將在需要時從客戶端觸發。

任何洞察力肯定會幫助理解這個難題。

感謝

投資回報率

+0

我從未見過'SKPaymentTransactionStateRestored'在我的應用程序中的'auto-renewable'子目錄中啓動:( – 2013-11-25 08:47:23

回答

2

我的經驗指出,你需要定期繼續在服務器上驗證收據。我注意到和你一樣,這些新收據發送到應用程序不一致。我認爲,如果Apple在新續約的某個時間範圍內剛剛啓動應用程序,則會將收據發送給客戶。

相關問題