订阅开始和取消时的 Play & App Store Webhooks/服务器端代码

Play & App Store Webhooks / Server Side Code on subscription start and cancel

我需要在用户购买和取消订阅时添加服务器端逻辑。对我来说,这似乎是许多应用程序可能使用的基本功能。然而事实证明,设置所需的 webhooks 并不是那么简单。

我的应用程序将在 android 和 iOS 上可用,因此我需要对两者进行配置,这就是我考虑使用 RevenueCat 的原因。但事实证明,这是一项每月 110 美元的付费功能,这对于 a/my 新应用来说太贵了。与使用官方 InApp 购买包相比,这可能是 RevenueCat 节省最多时间的方法,所以我不明白他们为什么要将其设为付费功能。

无论如何,使用 Play 商店和 App Store 处理 webhook 的最佳方式是什么?任何指南和提示都会非常有帮助!

Apple 和 Google 都提供服务器到服务器的通知,当订阅者取消时会通知您。

Apple 指南:Enabling Server-to-Server Notifications

Google 指南:Real-time developer notifications

如果您有自己的用户 ID,它们将不会出现在这些服务器通知中,因此您可以在您的服务器上保存用户 ID 以及他们最初购买的交易标识符。这样,当收到通知时,您可以从交易标识符中查找用户并将其标记为已取消。

或者,RevenueCat API 包含在他们的免费计划中,因此您可以定期轮询他们的 GET /subscribers 端点以获取用户的最新订阅状态。这显然不是实时的,但可能足以满足您的用例。

更新:我决定解决这个问题,类似于@enc_life 建议的 RevenueCat API。为了验证购买,我向我的服务器发送一个请求,检查用户是否实际购买了订阅。为了取消订阅,我每天在我的服务器上执行一个函数,检查所有订阅者订阅是否仍然有效。