应用内购买iOS和Android,可与我的应用关联';用户

应用内购买iOS和Android,可与我的应用关联';用户,android,ios,swift,in-app-purchase,app-store,Android,Ios,Swift,In App Purchase,App Store,我有自己的系统用户管理模块(登录和注册)。 我有一个iOS应用程序,用户可以通过IAP购买对应用程序内容的高级访问权限。我在其他平台上也有应用程序;网络和安卓。他们还可以从其他平台购买此类接入。 我不希望我的用户在其他平台上购买了相同的访问权限。i、 e.如果他/她在iOS中购买了访问权限,则应允许他/她在切换到android时使用高级访问权限。 为此,我需要将购买的IAP与我自己的用户管理模块相关联。我如何才能这样做?您需要为应用程序定义配置设置。这将包含购买的模块详细信息和有效性等。当您打开

我有自己的系统用户管理模块(登录和注册)。 我有一个iOS应用程序,用户可以通过IAP购买对应用程序内容的高级访问权限。我在其他平台上也有应用程序;网络和安卓。他们还可以从其他平台购买此类接入。 我不希望我的用户在其他平台上购买了相同的访问权限。i、 e.如果他/她在iOS中购买了访问权限,则应允许他/她在切换到android时使用高级访问权限。
为此,我需要将购买的IAP与我自己的用户管理模块相关联。我如何才能这样做?

您需要为应用程序定义配置设置。这将包含购买的模块详细信息和有效性等。当您打开应用程序(或定期检查)时,请从服务器获取此设置并根据此设置配置模块


当用户进行购买时,您需要更新该特定用户的配置设置。这样,您就可以在所有平台上处理购买,而无需任何附加逻辑

您需要为每个用户提供一个跨平台ID,并将交易(无论来源如何)附加到该用户ID。对于每个收据类型(苹果、谷歌等),您需要确保适当地刷新它们,以保持订阅状态的准确性

由于用户只能从他们注册的设备上取消(即不能从Android上取消Apple订阅),因此您应该注意注册来源,并指示他们在那里管理他们的订阅

此外,如果您包括“恢复购买”按钮,用户可能能够共享订阅,因为恢复查看设备上的任何收据,而不是您的登录用户购买的收据。相反,请将服务器用作恢复的真实来源


或者,如果您不想自己构建和管理它,您可以考虑一个托管解决方案,例如,它可以直接处理所有这些问题。(免责声明:我在那里工作)

您目前如何跟踪购买情况?基本上,您只需要在持久用户实例hasBoughtPremiumContent上设置一个标志/标记,并使用该标志/标记确定是否显示任何内容。请参考此答案。它描述了相同的场景。