2013-03-10 52 views
2

我正在構建一款應用程序,可在應用程序中提供30天的高級服務訂閱。 我熟悉應用程序內購買(易耗品),併爲此設置了一切。但是,我還沒有找到任何有關驗證自動更新訂閱的正確過程的良好教程或解釋。iOS 6 - 如何驗證應用內可更新訂閱?

任何人都可以指向正確的方向嗎? 我想這樣做是有訂閱的設置是這樣的:

  • 用戶購買應用程序內訂閱和驗證
  • 認購結束日期(自購買30天)被添加到網絡與用戶的數據庫帳戶信息
  • 當訂閱更新,所以我可以更新網絡數據庫

UPDATE

如何檢測

所以我想通了原來的收貨和驗收驗證,所以都很好。然後通過從收據數據中獲取'expires_date'的值來獲得過期日期。

我現在需要完成的是檢查所有已完成的應用程序加載事務(包括任何自動續訂訂閱)的最佳方法,以便我可以解鎖高級服務。使用'restoreCompletedTransactions'可以讓我接收舊的收據數據,但它強制用戶輸入密碼,我想避免這種情況。有什麼選擇?

回答

1

用戶購買產品並保存收據。跟蹤時間戳記,以便知道訂閱有效的時間。在每次啓動時驗證收據。你將永遠得到最新的收據,所以你知道產品是否被更新。使用時間戳可以確保用戶在訂閱取消後無法訪問。

+0

是的,這是基本的概念。問題是,如何從應用程序商店獲取收據而不強制用戶重新輸入他們的iTunes帳戶密碼?使用'restoreCompletedTransactions'獲取完成的交易/收據將強制用戶重新輸入密碼(就好像他們在購買某物)。 – JimmyJammed 2013-03-11 20:11:26

+1

您存儲收據(例如在NSUserDefaults中)。然後將其作爲JSON傳遞給收據驗證服務器。請參閱http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html。這不會提示用戶輸入他們的密碼。 – 2013-03-12 09:43:25