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

Google Billing Library 4中launchBillingFlow可返回哪些结果码?

为应用内购或订阅发起计费流程,会展示Google Play购买页面,流程结果将通过BillingClient.Builder.setListener(PurchasesUpdatedListener)设置的PurchasesUpdatedListener接口实现回调返回。

两处BillingResult的响应码处理分工

1. launchBillingFlow 同步返回响应码

该返回值仅对应计费流程启动阶段的状态,也就是调用方法到Google购买页成功弹出前的校验、连接阶段的结果,除你反编译确认的4类响应码外,还可能返回其他服务校验类错误码,完整可处理的响应码如下:

  • OK:计费流程成功启动,Google购买页面已展示给用户,后续所有流程结果均走PurchasesUpdatedListener回调
  • SERVICE_DISCONNECTED:当前BillingClient未与设备上的Google Play建立连接
  • SERVICE_TIMEOUT:启动计费流程过程中连接中断,后台更新Google Play时大概率触发该错误
  • FEATURE_NOT_SUPPORTED:传入的BillingFlowParams与当前BillingClient实例的配置不匹配,比如配置仅支持内购但传入了订阅类型的sku
  • DEVELOPER_ERROR:开发配置类错误,常见场景包括传入的sku ID不存在、应用签名与Google Play后台配置不一致、测试账号未加入测试白名单等
  • SERVICE_UNAVAILABLE:设备未安装Google Play服务、服务被冻结、无网络权限,无法正常调用计费接口
  • ERROR:未知服务错误,通常由Google Play服务内部异常触发

所有非OK的返回值都代表购买页未成功弹出,无需等待后续回调,可以直接给用户对应错误提示即可。

2. PurchasesUpdatedListener 回调返回响应码

该回调返回的是购买页弹出后的所有流程结果,包含用户操作、支付结果、购买后校验的所有状态,需要处理的核心响应码包括:

  • OK:用户支付成功,可拿到返回的Purchases列表进行订单校验、商品核销操作
  • BILLING_CANCELED:用户主动取消购买流程,包括点击取消按钮、手动关闭购买页,也就是你实测和官方文档描述错位的响应码
  • ITEM_ALREADY_OWNED:用户已持有当前非消耗型商品、或当前订阅处于有效期内,无法重复购买
  • ITEM_UNAVAILABLE:当前商品已下架、或不对当前用户所在地区开放购买
  • SERVICE_DISCONNECTED:购买过程中Google Play服务连接中断,比如网络断开、后台进程被杀
  • ERROR:支付过程中出现未知错误,比如银行卡余额不足、支付渠道临时故障

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:18:02