在相同的Apple帐户但应用程序中的用户帐户不同时禁用还原IAP

时间:2016-03-30 14:11:01

标签: ios authentication in-app-purchase subscription apple-id

在我的应用程序中,我只为需要付费订阅的用户显示项目。用户可以通过电子邮件和密码登录应用程序,并可以注销,在同一设备上可以登录不同的用户。

我的问题是手机中的Apple ID仍然相同。因此,当不同的用户登录时,即使他没有支付任何费用,他也可以恢复购买。

所以我的问题是如何解决它?如何将Apple帐户连接到我的自定义帐户?或者至少在某种程度上,当尝试恢复IAP检查时,此Apple帐户已经拥有此订阅但不同的用户已登录。其他应用程序如何执行此操作?感谢

编辑: 我想在我的应用中使用自动续订订阅,我只是不知道如何将其连接到我的自定义帐户系统。

1 个答案:

答案 0 :(得分:9)

当用户进行IAP时,您将不知道用于购买的Apple ID。但是,您将知道购买的交易ID。您要做的事情是使用您的自定义帐户存储原始购买的交易ID。

当用户恢复时,您将确定SKPaymentTransaction的originalTransaction的transactionIdentifier是否与自定义帐户匹配。如果没有,那么你可以假设这是一个不同的用户。你可以在这里阅读更多相关内容:

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html

请注意,收据包含一个名为原始交易ID的字段。这是您用于订阅以跟踪原始事务ID的内容。这是因为每次自动续订时,都会为自动续订生成新的交易ID。收据实际上包含所有购买。

在您的服务器上,您可能希望保存原始交易ID和可能的收据。基本上,您的商店周围的元数据越多,如果您必须进行任何形式的双重检查交易,您的财务状况就会越好。