应用程序如何将帐户与应用程序内购买订阅相关联?

时间:2018-08-06 17:44:29

标签: ios mobile in-app-purchase

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

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

案例2: 或者,如果在电话上为帐户A购买了订阅,则在同一电话上注册帐户B时,应使用户为帐户B付费。

基本上,我希望将应用内购买绑定到我的帐户(而不是苹果设备/ Apple帐户,这是我理解的方式)。

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

1 个答案:

答案 0 :(得分:1)

问题标题的答案:

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

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

这里的几点:

  1. 如果苹果不向用户提供此选项,它将拒绝您的应用。
  2. 即使您的应用有错误,并且您无法恢复购买,也不会再次向用户收费。购买将失败,说明您已经购买了此商品。

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

情况2:我不确定这是否可行。由于是同一台设备,因此用户使用相同的AppleId(除非他在App Store中注销并更改Apple ID),否则Apple将限制回购。充其量您可能会限制帐户B的订阅内容,但是如果您的应用程序允许在同一设备用例(例如Instagram)上使用多个帐户,那么我不确定是否有相同的规定。

我针对我使用的音乐服务应用测试了相同的场景。拥有有效的订阅,已注销并使用其他电子邮件(应用程序)注册,但是由于我已经购买过,因此拒绝了购买。但是,它允许我升级和降级选项。我没有选择对其进行测试,以免搞乱我的帐户。

Here's the screenshot

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

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

有用的链接:

Restoring Purchases

Receipt Validation