我有各种平台的应用程序。让他们成为iOS,Android和Windows。为了使用应用程序,需要支付月费,但只需支付一次即可使用所有平台。它与Spotify相同,因此只需支付一次,就可以使用每个平台。
根据Google和Apple的指引,我需要按月收费提供应用内购买。系统连接到用户帐户,用户帐户由我控制的服务器管理。我正在存储用户的订阅数据,因此如果用户在iOS上使用应用程序内购买,则信息将被传输到中央服务器以便解锁Android-App(如果已在另一个平台上付费)已)
问题是以下情况: 用户拥有通过Google Play付款的有效订阅。 iOS和Windows应用程序也已解锁。现在,用户卸载Android应用,转到Google Play网站并取消订阅。在当前场景中,我无法检测到这一点,订阅将对所有其他平台有效。
问题是: 是否有任何模式来规避这个问题? Spotify和co也正在解决这个问题,因此必须有一个解决方案
答案 0 :(得分:1)
嗯,处理用户授权的服务器(即您的服务器)应查询Google Subscription API,以检查当前订阅是否仍然有效。每个SubscriptionPurchase资源都包含有关订阅何时到期的信息。
(见https://developers.google.com/android-publisher/api-ref/purchases/subscriptions)
对于Apple,同样的东西适用:您将收到一张收据,并且在收到该收据后,您可以随时查询服务器以检查该订阅是否仍然有效。
有一张幻灯片可以很好地总结这些观点和陷阱:https://speakerdeck.com/rosapolis/the-recurring-nightmare-cross-platform-in-app-subscription-purchases
结论:如果没有在两家商店之间进行通信的服务器,您将无法实现这一目标。然而,正如幻灯片所示,它带来了问题。
奖金:The talk from which the slides are taken is also on Youtube