我有一个适用于各种平台的应用程序。让它们成为 iOS、Android 和 Windows。为了使用一个应用程序,需要支付月费,但只需支付一次即可使用所有平台。和Spotify一样,一次付费,每个平台都可以使用。
根据 Google 和 Apple 的指导方针,我需要提供应用内购买以收取月费。该系统连接到由我控制的服务器管理的用户帐户。我正在存储用户的订阅数据,所以如果用户在 iOS 上使用应用内购买,信息会传输到中央服务器以解锁 Android 应用(如果它已在其他平台上支付)已经)
问题是以下场景:
用户拥有已通过 Google Play 支付的有效订阅。 iOS 和 Windows 应用程序也已解锁。现在,用户卸载 Android 应用程序,转到 Google Play 网站并取消订阅。在当前情况下,我无法检测到这一点,订阅将适用于所有其他平台。
问题是:
有什么模式可以规避这个问题吗? Spotify 和 co 也在解决这个问题,所以必须有一个解决方案
最佳答案
那么,处理用户授权的服务器(即您的服务器)应该查询 Google Subscription API,以检查当前订阅是否仍然有效。每个 SubscriptionPurchase Resource 都包含有关订阅何时到期的信息。
(见 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
关于google-play - 在多个平台上维护和组织购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44415934/