背景,app的苹果支付已经调试完了。在Google支付却遇到了问题。 首先,商品是创建好的。
Google Pay 支付配置步骤(脱敏版)
本文基于你提供的操作截图整理,所有可能涉及隐私的信息均已用 xxxx 代替。
1. 准备工作
在写代码前,先完成 Google Cloud 和 Google Play Console 的权限打通:
- 在 Google Cloud 项目
xxxx中创建服务账号(Service Account)。
- 下载该服务账号的 JSON 密钥文件(例如
xxxx.json)。
- 在 Google Play Console 的“用户和权限”中邀请该服务账号邮箱(如
ser@xxxx.iam.gserviceaccount.com)。 复制账号,添加为用户并赋予相应的权益
- 给该服务账号关联目标应用(例如
xxxx)。
2. 必开 API(非常关键)
如果未启用 Android Publisher API,会出现以下典型报错:
Google Play Android Developer API has not been used in project xxxx before or it is disabled
处理方法:
- 打开 Google API Library - Android Publisher API
- 点击
Enable - 等待 2-10 分钟权限传播后再重试
刚启用 API 立即调用,可能仍会短时间报错,属于正常延迟。
3. Play Console 权限配置
在 Play Console -> 用户和权限 -> 该服务账号,确保至少勾选以下两项权限:
- View financial data, orders, and survey responses
(查看财务数据、订单和调查问卷回复) - Manage orders and subscriptions
(管理订单和订阅)
你提供的截图已明确:如果缺少这两个权限,常见结果是
401 insufficient permissions。
4. 常见 401 报错与对应修复
报错 1
Error 401: The current user has insufficient permissions to perform the requested operation- 或日志:
Verify PurchaseToken Fail ... permissionDenied
检查顺序(建议按这个顺序排查)
- 服务账号是否已被邀请到 Play Console(不是只在 Cloud 创建就行)。
- 服务账号是否关联到正确应用
xxxx。 - 两项核心权限是否都已勾选(见上节)。
Android Publisher API是否已启用。- 是否等待了权限传播(刚改权限时常有延迟)。
- 后端加载的 JSON 密钥是否为当前服务账号对应的最新文件。
5. 后端落地建议
- JSON 密钥文件不要入库,使用环境变量或密钥管理系统挂载。
- 在启动时打印“脱敏后的服务账号邮箱后缀 + 项目 ID 后 4 位”用于定位环境问题。
- 验证购买失败时,把
error code、packageName、productId、purchaseToken(脱敏)写入结构化日志。 - 为
401增加明确提示:请检查 Play Console 权限和 Android Publisher API 是否已启用。
6. 配置完成验收清单
- Cloud 中服务账号已创建,JSON 密钥可被后端读取
- Android Publisher API 已启用
- 服务账号已加入 Play Console 用户与权限
- 已关联正确应用
xxxx - 两项核心权限已勾选
- 真机支付后,后端
verify purchase token返回成功,无401 permissionDenied