iTunes跨平台的IAP订阅 - Netflix如何做到这一点?

问题描述:

我创建的服务允许用户在任意数量的设备(网络,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

我知道这是旧的,但苹果最近推出的Status Update Notifactions其完成的任务的任择议定书要求通过网络挂接:

  1. 配置苹果将通知发送到您指定的终结点。 (Apple's small guide
  2. 处理从App Store通过HTTP POST发送的JSON对象并验证最新的收据。
  3. 更新/保存数据到您的数据库。
  4. 回应200状态码报告成功。

您可以处理以下通知类型:INITIAL_BUYCANCELRENEWALINTERACTIVE_RENEWALDID_CHANGE_RENEWAL_PREFERENCE

在链接的文档上面详细介绍了实现和类型。

对于初始订阅购买:

  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