调用谷歌应用内购买API返回400 Invalid Value错误的原因是什么
谷歌应用内购买详情API 400 Invalid Value 报错原因(参数均为有效值场景)
- 接口类型不匹配
该错误90%以上的场景是调用了错误的API端点:- 查询一次性商品(消耗/非消耗型)购买记录必须调用
androidpublisher.purchases.products.get接口 - 查询订阅类商品购买记录必须调用
androidpublisher.purchases.subscriptions.get接口
两类接口的入参结构完全一致,但接口不通用,混用就会触发无细节的400 Invalid Value报错。
- 查询一次性商品(消耗/非消耗型)购买记录必须调用
- 认证权限配置错误
- 调用API所用的服务账号,未在Google Play开发者后台分配对应应用的财务/查看订单权限,或权限配置后未等待24小时生效
- Google Cloud项目未正确启用
Google Play Android Developer API,或启用了其他不相关的同类API
- 参数传递规则不符合要求
- 参数值本身有效但传递位置错误,比如将purchase token传入product ID参数位,或参数名拼写错误(如
packageName大小写错误) - GET请求传递参数时未对purchase token中的特殊字符做URL编码,导致服务端解析参数异常判定为无效值
- 参数值本身有效但传递位置错误,比如将purchase token传入product ID参数位,或参数名拼写错误(如
- 环境不匹配
沙盒测试环境生成的purchase token调用了生产环境API,或生产环境token调用了沙盒测试接口,都会触发该报错。
内容的提问来源于stack exchange,提问作者PawelRoman
相关产品推荐
相关产品推荐

