2011-06-10 153 views
5

我正在開發iPhone應用程序,並且希望實施應用程序內購買的新自動續訂模式。我能夠成功實現交易,甚至可以訂閱應用程序,但如果用戶取消自動續訂訂閱,該怎麼辦?取消應用程序內購買的自動續訂通知

我如何能夠知道它已被取消,因此不能繼續訪問(一旦過期)?

回答

4

通過向Apple服務器發送收據驗證,您可以找到用戶訂閱的到期日期。請查看In-App Purchase Programming Guide上的圖1-3。

基本步驟是:

  1. 在設備上,獲得了交易收據應用程序內購買。您在交易期間或通過致電[SKPaymentQueue restoreCompletedTransactions]保存的任一人。
  2. 將收據發送到您的服務器。 (這比嘗試直接從應用程序對Apple服務器進行收據驗證更有優勢,因爲這需要您將共享密鑰存儲在設備上。)
  3. 將收據從服務器發送到Apple服務器,並在響應查找名爲expires_date的密鑰(表示自1970年1月1日以來的毫秒秒)。

我使用本指南來幫助我在服務器端:Verifying Apple App Store Receipts For In App Purchases With PHP and cURL

無法確定用戶是否已啓用或禁用自動續訂功能。 Apple不會讓您訪問這些信息。唯一的方法就是等到失效日期過去而沒有更新。

+0

嘿安德魯,可以訂閱iTunes帳戶1,然後更改iTunes帳戶到帳戶2,應用程序應該繼續與新的iTunes帳戶即帳戶2。該應用程序不應該要求從iTunes帳戶購買2.我應該如何管理。?我正在使用自動續訂訂閱。 – Charmi 2017-03-23 04:47:20

2

如果接收狀態是21006,有一個名爲cancellation_date鍵,那麼它的取消,你可以找到在該密鑰的新的到期日期,但它是一個格式化的日期,如果你需要一個更好的價值來分析檢查receipt['latest_expired_receipt_info']['cancellation_date_ms']expires_date

+0

我沒有收到['latest_expired_receipt_info']。它是否變得了? – Jasmit 2016-05-13 09:19:25

+0

我沒有得到任何提及的關鍵。 – 2017-04-21 10:53:33

相關問題