iTunes跨平台的IAP订阅 - Netflix如何做到这一点?
我创建的服务允许用户在任意数量的设备(网络,Android,Roku,iOS,Apple TV)上注册,然后购买每月订阅以观看视频内容。订阅提供对整个目录的访问。我有我自己的订阅管理API运行在服务器上,我想利用它作为真相的来源,以便用户可以在iPad上购买订阅,在Roku上登录应用程序,并继续观看他们离开的位置。iTunes跨平台的IAP订阅 - Netflix如何做到这一点?
基本上,Netflix。
这里是我的选择,据我可以告诉:
自动更新的订阅:这是Netflix的今天使用,但苹果并没有提供API或任一组围绕其支付网络挂接的平台,所以我不知道这个选项如何工作。当Apple每月自动续订订阅或用户取消订阅时,我的后端服务将不知道。
非续订订阅:用户通过IAP购买 应用内的订阅。购买完成后,应用程序同步的 订阅到我的后端系统。每次需要授权检查时,该应用都会与我的 后端对接。当用户的订购即将到期时,应用程序必须再次呈现购买 工作流程。
导入iTunes报告:不起作用,因为它不是实时的(拉,不是推),也不会告诉我任何关于已取消的订阅。我只能生成新用户的报告。
收据验证&推送到我的服务收据:将无法正常工作,因为它取决于实际使用我的应用程序的用户。用户理论上可以在我的应用程序中订阅,切换到Roku,并且从不再打开它。
完全跳过IAP并要求用户通过网络订阅。
我错过了什么吗?我非常好奇Netflix如何推动这一切。
我知道这是旧的,但苹果最近推出的Status Update Notifactions其完成的任务的任择议定书要求通过网络挂接:
- 配置苹果将通知发送到您指定的终结点。 (Apple's small guide)
- 处理从App Store通过HTTP POST发送的JSON对象并验证最新的收据。
- 更新/保存数据到您的数据库。
- 回应
200
状态码报告成功。
您可以处理以下通知类型:INITIAL_BUY
,CANCEL
,RENEWAL
,INTERACTIVE_RENEWAL
,DID_CHANGE_RENEWAL_PREFERENCE
在链接的文档上面详细介绍了实现和类型。
对于初始订阅购买:
- 用户发起对的iDevice购买
- 设备接触苹果公司,苹果公司发出的收据,并将其发送回设备
- 设备发送的收据我的服务器
- 服务器通过Apple的收据验证API验证收据是否合法
- 验证完收据后,服务器将其存储在我的数据库中
- 服务器响应应用程序说这一切都很好
为了使服务器与iTunes的订购同步:
- 设置一个cron作业来检索每天到期从DB收据的基础或东西
- 验证每个收据与苹果
- 苹果将作出回应与更新版本的收据,包含有关是否订阅被取消/更新/等细节。
- 服务器取代了原来的收据与此更新版本的DB
现在,如果有人登录到他们的账户上Roku公司或其他一些设备,认购能否兑现,因为我的DB是真理的来源。
除非我忘记了一些东西,否则我认为Netflix根本不使用苹果应用内购买订阅系统。我认为你只是直接通过Netflix购买你的订阅,并且他们跟踪你的账户状态等。他们的应用只是检查服务器和他们自己的内部跟踪,看看你的账户是否仍然活跃。如果我试图这样做,我只需要PayPal订阅或类似的东西,并完全绕过平台特定的API。此外,您不必为每个订阅减少Apple(或Google等)的费用。 – Nerrolken
截至上个月,Netflix允许用户通过他们的iDevices进行订阅,他们使用IAP(根据Apple的指导原则;他们不允许通过任何其他系统进行应用程序内支付) – ehynds