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

如何从in-app-billing响应中识别base plans及关联offers

核心原因

Google Play Billing库从5.0版本开始,不会在queryProductDetailsAsync接口响应中明文返回你在Play Console配置的base plan ID、offer ID字符串,所有订阅配置的匹配都需要通过offerTags字段结合定价规则完成。

识别规则

你可以按照以下逻辑从响应中区分base plan和其下挂载的offer:

  • subscriptionOfferDetails数组的每一项,对应一个用户可直接购买的订阅选项,既包含无折扣的base plan本身,也包含base plan下配置的所有带优惠的offer
  • 同一base plan下的所有订阅选项,会共享你给该base plan配置的专属offer标签
  • 无折扣的base plan对应的条目,offerTags数组里仅包含base plan自身的标签,没有额外标签
  • 优惠offer对应的条目,offerTags数组会同时包含所属base plan的标签 + 该offer自身的标签
  • 可以通过pricingPhases交叉校验:同一base plan下的所有offer,最后一个续费阶段的价格、计费周期和base plan本身完全一致
对应你返回结果的匹配结果

你配置的2个base plan、各挂载2个offer的结构,和返回内容完全对应:

月付base plan(标签为baseplan)

  • base plan本体:对应数组最后1项,offerTags为["baseplan"],定价为每月₹460.00,无首购优惠,按月自动续费
  • 关联offer1:对应数组第5项,offerTags为["baseplan", "offer1"],规则为前12个月每月付费₹414.00,到期后恢复每月₹460.00续费
  • 关联offer2:对应数组第4项,offerTags为["baseplan", "offer2"],规则为前6个月每月付费₹368.00,到期后恢复每月₹460.00续费

半年付base plan(标签为baseplan6m)

  • base plan本体:对应数组第3项,offerTags为["baseplan6m"],定价为每6个月₹700.00,无首购优惠,每半年自动续费
  • 关联offer3:对应数组第1项,offerTags为["baseplan6m", "offer3"],规则为前2个计费周期(共12个月)每6个月付费₹630.00,到期后恢复每6个月₹700.00续费
  • 关联offer4:对应数组第2项,offerTags为["baseplan6m", "offer4"],规则为前3个计费周期(共18个月)每6个月付费₹665.00,到期后恢复每6个月₹700.00续费
开发提示
  • 发起订阅购买时,直接传入对应订阅选项的offerIdToken即可,不需要使用控制台配置的明文ID
  • 建议你在Play Console创建base plan、offer时,给每个资源配置全局唯一的offerTag,后续端上直接通过标签匹配对应商品即可,不要依赖接口返回明文ID的逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:33:18