应用如何将帐户与应用内购买订阅绑定?

Mat*_*art 6 mobile in-app-purchase ios

我正在开发一个 iOS 应用程序,用户必须注册/登录我的应用程序的帐户。为了能够使用我的服务,我希望用户通过应用内购买进行支付(在我的例子中是自动续订)。然后,这会将他们的 IAP 与他们的帐户(他们与我们一起创建)联系起来,以便能够在任何其他 iOS 设备上使用。

情况 1: 例如,如果在手机 A 上为某个帐户购买了订阅,则在登录手机 B(使用同一帐户)时不应让用户再次付费。

情况2: 或者如果在手机上为帐户A购买了订阅,则在同一手机上注册帐户B时应让用户为帐户B付费。

基本上,我希望应用内购买与我的帐户绑定(而不是苹果设备/苹果帐户,据我了解,这是它的工作方式。)

我知道它们是收据,这可能是我问题答案的一部分。或者,如果这是对应用内购买的限制,还有什么其他方法可以做到这一点(除了使用 Apple 的 IAP)

mic*_*oon 4

针对问题标题的回答:

购买后,应用程序中会收到更新,下次启动时,其中包含 transaction_id(用于续订的 original_transaction_id),您应该将此交易 ID 与您的应用程序用户 ID 相关联。

情况 1: Apple 在您的应用程序中提供了“恢复购买”选项。由于使用相同的帐户,您的应用程序服务器已经知道用户已经付款,并且应用程序不应提示用户再次付款。但是,为了在手机 B 上接收即将到来的续订更新,您必须“恢复购买”,这将使 Apple 也能够链接到该设备上之前的购买。恢复完成后,用户购买收据将在设备上可用,并且应根据收据的内容验证采取所有后续操作。

这里有几点:

  1. 如果 Apple 不向用户提供此选项,它将拒绝您的应用程序。
  2. 即使您的应用程序有问题,并且您无法恢复购买,用户也不会再次被收取费用。购买将失败,表明您已经购买了此产品。

上述情况完全基于用户在两台设备上使用相同 Apple ID 的假设(相同的应用程序用户 ID 并不重要)。

案例2:我不确定这是否可能。由于是同一台设备,用户使用相同的AppleId(除非他退出并在App Store中更改apple id),Apple将限制重新购买。您最多可以限制帐户 B 的订阅内容,但如果您的应用程序允许同一设备用例(例如 Instagram)上有多个帐户,我不确定是否有相同的规定。

我对我使用的音乐服务应用程序测试了相同的场景。拥有有效的订阅,注销并使用其他电子邮件(应用程序)注册,但购买被拒绝,提醒我已经购买。然而,它允许我升级和降级选项。我没有选择测试它们,以免弄乱我的帐户。

这是截图

PS:还有很多其他警告/陷阱需要注意。他们中有一些:

  1. 在情况2中,苹果限制回购,但如果用户选择当前有效订阅以外的选项,则不会限制,这将升级/降级订阅。根据您的实施方式,它甚至可能会立即更改用户 A 的订阅,或者在用户下次重新登录时或此后下次续订时更改。
  2. 在此处讨论的两种情况下,用户使用相同的 Apple Id,但请考虑以下情况 - 相同的 Apple Id 不同的应用程序 ID 以及不同的 Apple Id 和相同的应用程序 ID。(看这个
  3. 对于情况 2,您应该始终刷新收据或恢复购买(如果没有可用收据)以进行新用户登录。收据中有一个原始交易 ID,您应该在用户 A 第一次购买时链接该 ID。根据收据,您可以选择允许用户 B 访问内容或限制。但是,您不能让用户为新帐户付费(我想是这样)。

有用的网址:

恢复购买

收据验证