You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过RevenueCat API检查用户是否存在且不创建新用户?

针对RevenueCat未知用户ID查询的最佳解决方案

问题背景

我需要从自有数据库中获取每位用户的订阅信息,但部分数据库用户并非RevenueCat的订阅用户。RevenueCat仅提供一个同时支持GET和POST的/v1/subscribers/{app_user_id}端点:

  • 当请求的app_user_id不在RevenueCat系统中时,该端点会自动创建一个「免费订阅」用户
  • 我无法通过检查新创建用户的属性来删除它,因为这会误删系统中真实存在的无订阅(免费)用户
  • RevenueCat目前没有推出全量获取客户列表的API计划

以下方案对当前场景无效,需明确排除:

  • 通过API检查用户订阅是否活跃
  • 在Flutter中检查用户是否有过购买记录

最佳可行方案

方案1:利用Webhooks同步有效用户ID

配置RevenueCat的用户变更Webhook,当用户首次在RevenueCat中创建(包括真实订阅用户和主动创建的免费用户)时,将对应的app_user_id同步到自有数据库的「RevenueCat用户白名单」中。后续查询订阅信息时,仅对白名单内的app_user_id调用API,从根源上避免触发无意义的自动创建操作。

方案2:带标识查询+即时清理临时用户

首次调用/v1/subscribers/{app_user_id}时,在请求体中添加自定义属性(比如custom_fields: {temp_check: "true"})。获取返回结果后执行以下校验:

  • 检查用户的创建时间是否与当前请求时间差极小(比如1分钟内)
  • 确认用户无任何订阅历史(包括过期、免费的订阅记录)
    如果同时满足以上两个条件,立即调用RevenueCat的删除用户API移除该自动创建的临时用户;真实存在的免费用户会有更早的创建时间或其他历史痕迹,不会被误删。

方案3:批量处理+结果过滤清理

如果需要批量查询数据库用户的订阅信息,可将app_user_id分批次调用API,然后对返回结果做二次过滤:

  • 仅保留有过订阅记录(含过期订阅)的用户数据
  • 对从未有过订阅且创建时间极近的用户,调用删除接口清理

关键注意事项

  • 删除用户API需配合严格的校验逻辑,避免误删真实用户
  • Webhook方案是长期最优解,能减少无效API调用和临时用户的清理成本

内容的提问来源于stack exchange,提问作者Fellipe Tavares

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 21:13:10