我正在使用Inapp Billing v3开发一个带有订阅功能的应用程序。该应用程序有登录机制。如果用户“X”订阅了某个功能并注销,如果用户“Y”在同一设备上登录应用程序并尝试订阅,则Google Play会告诉该产品已经购买。订阅是否基于设备中同步的帐户而不是登录应用程序的用户?如果是这样,如何实现我的情况?
我正在使用Inapp Billing v3开发一个带有订阅功能的应用程序。该应用程序有登录机制。如果用户“X”订阅了某个功能并注销,如果用户“Y”在同一设备上登录应用程序并尝试订阅,则Google Play会告诉该产品已经购买。订阅是否基于设备中同步的帐户而不是登录应用程序的用户?如果是这样,如何实现我的情况?
Google Play中的应用内购买订阅与Google Play账户绑定。只要Google账户没有更改,该订阅将被视为此账户有效,您不能再次购买该订阅。
如果您想使用自己的账户替换Google账户系统,您需要“欺骗”Google Play。您可以创建一组不同的应用内购买订阅(例如订阅#1、订阅#2等)。当您订阅时,将自己的登录作为附加参数传递到developerPayload
字段中。
现在,当您枚举所有可用的订阅时,请检查developerPayload
字段中是否有当前用户账户。如果没有,则认为当前用户没有订阅,并允许使用尚未使用过的第一个订阅(订阅#1、订阅#2等)进行订阅。请确保您的订阅池中的订阅数量大于您可能拥有的同一设备上的用户数量。
这不是一种直接的方式,而是一种解决问题的方法。
目前,Google IAB仅支持设备上的一个帐户(设备上的主Gmail帐户)。但是从Android 4.2开始,多用户功能可用,并且Google正在努力为IAB提供相同的支持。