You need to enable JavaScript to run this app. Google Play Billing 3.0.3 检测用户是否用过introductory price
优惠活动
大模型
产品
解决方案
定价
更多

Google Play Billing 3.0.3 检测用户是否用过introductory price

Google Play Billing 3.0.3 判断用户是否已使用订阅 introductory price 的实现方法

接口特性说明

BillingClient 3.0.3 中的 SkuDetails.getIntroductoryPrice() 方法,仅返回商品在Play控制台配置的静态优惠参数,不会关联当前登录用户的优惠使用资格,这是该版本的设计特性,并非接口异常。

可落地的判断逻辑

  • 通过历史购买记录接口校验用户优惠使用状态
    调用 queryPurchaseHistoryAsync() 拉取当前用户全部历史订阅类购买记录,遍历返回的记录做匹配判断:
    • 只要某条历史记录属于当前展示订阅所属的商品组,且曾经关联过 introductory price 权益,即可判定用户已经使用过对应优惠,无需再展示优惠信息

    禁止使用 queryPurchasesAsync() 做资格判断,该接口仅返回当前处于生效状态的订阅,不包含已过期、已自动取消的历史优惠订阅记录,会导致判断遗漏

  • 本地缓存做性能优化
    首次完成用户优惠资格校验后,将“订阅商品组ID + 本地用户标识”的对应关系持久化到本地存储,后续进入订阅展示页时先读取缓存结果,再定期和服务端拉取的购买记录做数据对账,减少不必要的Billing接口调用
  • 资格边界规则对齐
    判定时需要和Play侧的优惠规则保持一致,避免逻辑偏差:
    • 同一个订阅商品组下的所有档位,用户只要在任意档位享受过一次 introductory price,就永久失去同组所有档位的首单优惠资格
    • 优惠资格是和Google登录账号强绑定的,跨设备、跨账号的使用记录不需要做额外校验

展示层处理规则

基于上述判断结果做前端展示控制:只有当用户校验通过、确属未使用过优惠的状态时,才渲染 getIntroductoryPrice() 返回的优惠价格文案、相关权益说明;校验不通过的用户直接展示订阅的常规价格,避免重复展示已使用过的优惠权益。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 00:24:04