2015-10-06 48 views
11

我創建的服務允許用戶在任意數量的設備(網絡,Android,Roku,iOS,Apple TV)上註冊,然後購買每月訂閱以觀看視頻內容。訂閱提供對整個目錄的訪問。我有我自己的訂閱管理API運行在服務器上,我想利用它作爲真相的來源,以便用戶可以在iPad上購買訂閱,在Roku上登錄應用程序,並繼續觀看他們離開的位置。iTunes跨平臺的IAP訂閱 - Netflix如何做到這一點?

基本上,Netflix。

這裏是我的選擇,據我可以告訴:

  1. 自動更新的訂閱:這是Netflix的今天使用,但蘋果並沒有提供API或任一組圍繞其支付網絡掛接的平臺,所以我不知道這個選項如何工作。當Apple每月自動續訂訂閱或用戶取消訂閱時,我的後端服務將不知道。

  2. 非續訂訂閱:用戶通過IAP購買 應用內的訂閱。購買完成後,應用程序同步的 訂閱到我的後端系統。每次需要授權檢查時,該應用都會與我的 後端對接。當用戶的訂購即將到期時,應用程序必須再次呈現購買 工作流程。

  3. 導入iTunes報告:不起作用,因爲它不是實時的(拉,不是推),也不會告訴我任何關於已取消的訂閱。我只能生成新用戶的報告。

  4. 收據驗證&推送到我的服務收據:將無法正常工作,因爲它取決於實際使用我的應用程序的用戶。用戶理論上可以在我的應用程序中訂閱,切換到Roku,並且從不再打開它。

  5. 完全跳過IAP並要求用戶通過網絡訂閱。

我錯過了什麼嗎?我非常好奇Netflix如何推動這一切。

+0

除非我忘記了一些東西,否則我認爲Netflix根本不使用蘋果應用內購買訂閱系統。我認爲你只是直接通過Netflix購買你的訂閱,並且他們跟蹤你的賬戶狀態等。他們的應用只是檢查服務器和他們自己的內部跟蹤,看看你的賬戶是否仍然活躍。如果我試圖這樣做,我只需要PayPal訂閱或類似的東西,並完全繞過平臺特定的API。此外,您不必爲每個訂閱減少Apple(或Google等)的費用。 – Nerrolken

+0

截至上個月,Netflix允許用戶通過他們的iDevices進行訂閱,他們使用IAP(根據Apple的指導原則;他們不允許通過任何其他系統進行應用程序內支付) – ehynds

回答

6

我知道這是舊的,但蘋果最近推出的Status Update Notifactions其完成的任務的任擇議定書要求通過網絡掛接:

  1. 配置蘋果將通知發送到您指定的終結點。 (Apple's small guide
  2. 處理從App Store通過HTTP POST發送的JSON對象並驗證最新的收據。
  3. 更新/保存數據到您的數據庫。
  4. 迴應200狀態碼報告成功。

您可以處理以下通知類型:INITIAL_BUYCANCELRENEWALINTERACTIVE_RENEWALDID_CHANGE_RENEWAL_PREFERENCE

在鏈接的文檔上面詳細介紹了實現和類型。

12

對於初始訂閱購買:

  1. 用戶發起對的iDevice購買
  2. 設備接觸蘋果公司,蘋果公司發出的收據,並將其發送回設備
  3. 設備發送的收據我的服務器
  4. 服務器通過Apple的收據驗證API驗證收據是否合法
  5. 驗證完收據後,服務器將其存儲在我的數據庫中
  6. 服務器響應應用程序說這一切都很好

爲了使服務器與iTunes的訂購同步:

  1. 設置一個cron作業來檢索每天到期從DB收據的基礎或東西
  2. 驗證每個收據與蘋果
  3. 蘋果將作出迴應與更新版本的收據,包含有關是否訂閱被取消/更新/等細節。
  4. 服務器取代了原來的收據與此更新版本的DB

現在,如果有人登錄到他們的賬戶上Roku公司或其他一些設備,認購能否兌現,因爲我的DB是真理的來源。

+1

您沒有保存原始的binary64收據您正在驗證保持不變,並且稍後可以在您的答案中重複使用,您正在談論保存傳統上視爲收據的東西,並使用它來更新訂閱等方面的相應數據點。答案使其看起來像是同一件事。 – myusuf3

+2

* 4.服務器用DB中的此更新版本替換原始收據* - 這並非真正需要,原始收據始終爲您提供最新信息。無需將其替換爲任何其他未來的收據。 – Rao