Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios iTunes跨平台IAP订阅-Netflix是如何做到的?_Ios_In App Purchase_Itunes_Subscriptions - Fatal编程技术网

Ios iTunes跨平台IAP订阅-Netflix是如何做到的?

Ios iTunes跨平台IAP订阅-Netflix是如何做到的?,ios,in-app-purchase,itunes,subscriptions,Ios,In App Purchase,Itunes,Subscriptions,我正在创建一项服务,允许用户在任意数量的设备(网络、安卓、Roku、iOS、苹果电视)上注册,然后按月购买观看视频内容的订阅。订阅提供对整个目录的访问。我有我自己的订阅管理API,运行在一台服务器上,我想利用它作为真相的来源,这样用户就可以在iPad上购买订阅,在Roku上登录应用程序,并继续关注他们离开的地方 基本上是Netflix 就我所知,以下是我的选择: 自动续费订阅:这是Netflix现在使用的,但苹果公司没有在他们的支付平台上提供API或任何一组Webhook,所以我不知道这个选项如

我正在创建一项服务,允许用户在任意数量的设备(网络、安卓、Roku、iOS、苹果电视)上注册,然后按月购买观看视频内容的订阅。订阅提供对整个目录的访问。我有我自己的订阅管理API,运行在一台服务器上,我想利用它作为真相的来源,这样用户就可以在iPad上购买订阅,在Roku上登录应用程序,并继续关注他们离开的地方

基本上是Netflix

就我所知,以下是我的选择:

  • 自动续费订阅:这是Netflix现在使用的,但苹果公司没有在他们的支付平台上提供API或任何一组Webhook,所以我不知道这个选项如何工作。我的后端服务不知道苹果公司何时每月自动更新订阅,或者用户是否取消订阅

  • 非续订订阅:用户在内部购买订阅 该应用程序通过IAP。购买完成后,应用程序同步 订阅我的后端系统。该应用程序与我的 在任何需要权利检查的时候都可以使用后端。当用户的 订阅即将过期,应用程序必须显示购买 请再说一遍

  • 导入iTunes报告:不起作用,因为它不是实时的(拉,不是推),并且没有告诉我任何有关取消订阅的信息。我只能生成新订户的报告

  • 收据验证&将收据推送到我的服务:不起作用,因为它取决于实际使用我的应用程序的用户。理论上,用户可以在我的应用程序中订阅,切换到Roku,再也不会打开它

  • 完全跳过IAP,并要求用户通过web订阅


  • 我错过什么了吗?我真的很好奇Netflix是如何做到这一点的。

    对于最初的订阅购买:

  • 用户在iDevice上发起购买
  • 设备联系苹果,苹果发出收据并将其发送回设备
  • 设备将收据发送到我的服务器
  • 服务器通过苹果的收据验证API验证收据是否合法
  • 验证收据后,服务器将其存储在my DB中
  • 服务器响应应用程序,表示一切正常
  • 要使服务器与iTunes订阅保持同步,请执行以下操作:

  • 设置一个cron作业,每天从数据库中检索过期收据或其他内容
  • 与苹果公司确认每份收据
  • 苹果将以更新版本的收据作为回应,其中包含订阅是否被取消/续签等详细信息
  • 服务器用数据库中的此更新版本替换原始收据

  • 现在,如果有人在Roku或其他设备上登录到他们的帐户,订阅可以得到尊重,因为my DB是真相的来源。

    我知道这是旧的,但苹果最近推出了它,它通过Webhook实现了OP的要求:

  • 将Apple配置为向指定端点发送通知。()
  • 处理通过HTTP POST从应用商店发送的JSON对象,并验证最新收据
  • 将数据更新/保存到数据库中
  • 使用
    200
    状态代码响应以报告成功
  • 您将能够处理以下通知类型:
    初始购买
    取消
    续约
    交互式续约
    是否更改续约首选项


    上面链接中的文档更详细地解释了实现和类型。

    除非我忘了什么,否则我认为Netflix根本不会使用苹果应用内购买订阅系统。我认为你只是直接通过Netflix购买订阅,他们会跟踪你的帐户状态,等等。他们的应用程序只是检查服务器和他们自己的内部跟踪,看看你的帐户是否仍然有效。如果我想这么做,我只会订阅PayPal或类似的东西,完全绕过特定于平台的API。另外,你不必为苹果(或谷歌等)的每次订阅分得一杯羹。截至上个月,Netflix允许用户通过iDevices进行订阅,他们使用IAP(根据苹果的指导方针,他们不允许通过任何其他系统进行应用内支付)您不是在原始binary64收据上保存,您正在验证收据是否保持不变,并且可以在您的回答中稍后重复使用。您是在谈论保存我们传统上视为收据的内容,并使用它来更新订阅等相关的数据点。回答似乎是一样的。4.服务器替换了DB中有此更新版本的原始收据-这实际上不是必需的,原始收据始终为您提供最新信息。无需将其替换为任何其他未来收据。如果其他用户使用新帐户登录此设备,您将如何处理?您将注册此新用户拥有有效的收据和订阅,尽管他们没有支付任何费用。他们现在将登录到他们的设备上,您的DB将允许订阅。我想指出的是,在这些通知的完整实现中存在一些问题(检查和)。