Google计费订阅试用版报错:交易无法完成(BILLING_UNAVAILABLE 3)
问题详情
Google Play控制台配置
- 优惠1:1周订阅,含3天试用期
- 优惠2:1个月订阅
- 优惠3:1年订阅
Billing接口返回的优惠信息
调用queryProductDetails后,subscriptionOfferDetails返回:
- 优惠1:1周订阅+试用期(2个定价阶段)
- 优惠2:1周订阅(不展示给用户)
- 优惠3:1个月订阅
- 优惠4:1年订阅
错误现象
用户选择试用计划后,使用优惠1的offerToken调用launchBillingFlow,Google Play支付窗口显示试用信息,但用户点击订阅后弹出错误:
您的交易无法完成。请使用其他付款方式或联系我们
同时PurchasesUpdatedListener返回错误码BILLING_UNAVAILABLE 3
正常场景
- 测试谷歌账号+测试银行卡可正常购买试用版
- 正式环境下,月付、年付订阅可正常购买
- 正式环境下,无试用期的周付订阅可正常购买
仅正式环境带试用期的周订阅触发该错误,多地区、多设备、真实用户均出现相同问题,当前使用Billing SDK 6.1.0。
排查与解决方向
检查优惠的地区与付款方式限制
- 登录Google Play控制台,确认优惠1的"国家/地区"设置覆盖测试地区,部分付款方式(如预付卡)可能被限制参与试用活动,即使账号所在地区已开放。
- 检查优惠的"资格要求",是否误设置了"仅新用户"或其他筛选条件,测试账号可能因白名单不受限制,但正式用户不符合资格。
验证定价阶段的合规性
- 确认优惠1的试用期定价为0(免费试用),正式订阅阶段的定价与控制台配置的地区定价一致,避免定价异常导致交易拦截。
- 检查定价阶段时间周期:试用期3天、正式期1周,确保周期设置无冲突(如试用期时长未超过订阅周期)。
核对offerToken的使用逻辑
- 调用
launchBillingFlow前,打印subscriptionOfferDetails的offerToken及对应优惠信息,确保传入的token属于带试用期的优惠1,而非其他优惠的token。 - 确认
ProductDetailsParams.SubscriptionOfferParams构建正确,offerToken参数无拼写或传递错误。
- 调用
检查订阅政策与发布状态
- 确认应用的订阅政策(如试用期说明)符合Google Play订阅条款,避免因政策违规导致正式交易被拦截。
- 检查订阅产品是否已发布到正式环境,而非处于草稿或内部测试状态,测试账号可能有权限访问未发布内容,但正式用户无法正常购买。
升级Billing SDK版本
- Billing SDK 6.1.0存在部分已知的试用期订阅兼容性问题,建议升级到最新稳定版(如6.2.0及以上),新版本通常会修复这类交易拦截问题。
内容的提问来源于stack exchange,提问作者PrimankaDEN
相关产品推荐
相关产品推荐

