如何使自动续订订阅与内部用户绑定,而不是苹果ID?

Edw*_*Lim 15 storekit in-app-purchase ios firebase swift3

我似乎遇到了一堵砖墙,但基本上我在我的应用程序中的是用户的登录页面和创建帐户页面.当用户打开我的应用并创建新帐户时,他们的信息将存储在Firebase服务器(BaSS)上.

现在我的问题是我将如何制作它以便对于通过我的应用程序创建帐户的每个用户,他们可以选择订阅我的应用程序,并且此订阅仅对他们的帐户有效(不是苹果ID).目前,如果用户与我创建了一个帐户并继续说订阅服务,那么一切都可以访问应用程序的全部功能.

但是,当他们注销并创建另一个帐户时,因为现在它的订阅与用户的苹果ID相关联,另一个帐户或任何帐户可以完全访问该应用程序.不只是购买的那个.

所以我想我的问题是如何制作它以便每次订阅/购买都与我的内部用户相关联,而不是设备上登录的苹果ID.(基本上像pandoraspotify,您对应用的访问权限取决于您的帐户,而不是您的苹果ID)

根据苹果文档:

持续使用您自己的服务器将收据的副本连同某种凭据或标识符一起发送到您的服务器,以便您可以跟踪哪些收据属于特定用户.例如,让用户使用电子邮件或用户名以及密码向服务器标识自己.不要使用UIDevice的identifierForVendor属性 - 您不能使用它来识别和恢复同一用户在其他设备上进行的购买,因为不同的设备对此属性具有不同的值.

我如何使用Firebase做类似的事情?

Vik*_*ech 11

在iTunes上完成交易后,您将获得该购买的交易收据.此收据包含有关购买的各种信息.您可以将此收据存储在数据库中.在此收据中,还有一个名为"original_transaciton_identifier(OTI)"的字段,该标识符表示从该Apple ID进行的唯一购买ID.将此唯一标识符存储在您的数据库中,与首先发送它的用户ID相对应.

现在,如果用户ID A向您发送OTI 11,则将其存储在您的数据库中,防止用户A.当用户B登录并尝试恢复购买时,将更新的收据发送到您的服务器,从此收据中取出OTI,比较将OTI存储在您的数据库中,如果您没有找到任何内容,那么这意味着它是一个新的购买,否则您知道此购买属于谁,您可以将其传达给用户B,这与其他用户相关联,尝试使用新的iTunes帐户进行购买.

  • 但是在您的数据库中,您将能够看到用户 A 是否仍处于活动订阅状态。因此,如果 A 不是活跃成员而 B 试图成为活跃成员,您可以根据业务需求授予他订阅或不授予他订阅。问题是你有完整的信息,你用这些信息做什么完全取决于你正在开发的业务。 (3认同)