首页 > 解决方案 > 应用程序如何将帐户与应用内购买订阅联系起来?

问题描述

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

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

案例2: 或者如果在手机上为账户A购买了订阅,在同一部手机上注册账户B时,应该让用户为账户B付费。

基本上我希望应用内购买与我的帐户相关联(而不是苹果设备/苹果帐户,这是我理解的工作方式。)

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

标签: iosmobilein-app-purchase

解决方案


问题标题的答案:

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

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

这里有几点:

  1. 如果 Apple 未向用户提供此选项,Apple 将拒绝您的应用。
  2. 即使您的应用程序有问题,并且您未能恢复购买,也不会再次向用户收费。购买将失败,说明您已经购买了这个。

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

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

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

这是屏幕截图

PS:还有很多其他的注意事项/陷阱需要处理。他们中有一些:

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

有用的网址:

恢复购买

收据验证


推荐阅读