Google Play Console与Developer API关联失败,无法验证Flutter应用购买凭证
解决Google Play内购凭证验证403(projectNotLinked)问题
以下是你可能遗漏的关键点及对应修复步骤:
1. 确认OAuth2 Playground使用的是已关联的项目
OAuth2 Playground授权时,必须选择Play开发者控制台中已关联的Google Cloud项目,而非其他无关项目。很多时候会误选个人账号下的其他项目,导致调用时使用了未关联的Project ID。
- 验证方式:在Play开发者控制台的「API访问」页面查看已关联的项目ID,然后在OAuth2 Playground的「Select & authorize APIs」环节,确保选择该项目对应的授权主体。
2. 检查服务账号的权限是否精准
服务账号必须拥有**「Google Play Android Developer」专属角色**,普通的Editor/Owner角色无法满足API调用需求:
- 操作步骤:
- 打开Google Cloud控制台,进入已关联的项目,选择「IAM与管理员」→「IAM」。
- 找到目标服务账号,确认其角色列表包含「Google Play Android Developer」,若没有则添加该角色。
- 注意:权限变更需等待10-15分钟生效,不要立即测试。
3. 核对请求URL的参数正确性
API URL中applications/[ProjectID]位置需要的是应用包名(即你用的com.myorg.myapp),而非Google Cloud项目ID,需确认:
- 包名与Play开发者控制台中应用的包名完全一致,大小写、符号无误差。
- 不要混淆Google Cloud项目ID(通常是字母数字组合,如
myapp-12345)和应用包名。
4. 确认OAuth2授权范围正确
在OAuth2 Playground授权时,必须勾选https://www.googleapis.com/auth/androidpublisher权限范围,否则即使授权成功,也无法访问内购数据:
- 操作步骤:在「Select & authorize APIs」环节,搜索并添加该权限范围后再完成授权流程。
5. 验证购买凭证的有效性
确保PurchaseToken真实有效,且对应当前应用和商品ID:
- 若为测试购买凭证,需将测试账号添加到Play开发者控制台的「授权测试账号」列表,否则测试凭证会被拒绝。
6. 重新关联项目(极端同步问题)
若以上都确认无误,尝试先解除Play开发者控制台与Google Cloud项目的关联,等待5分钟后重新关联,再创建新服务账号并配置权限——有时关联过程会出现缓存同步问题,重新关联可解决。
测试建议
可以先用curl命令绕开OAuth2 Playground,直接用服务账号权限测试API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.myorg.myapp/purchases/products/myapp.funds.five/tokens/TokenValueGoesHere
内容的提问来源于stack exchange,提问作者Mason Fraser
相关产品推荐
相关产品推荐

