Google Pay测试环境支付报错RpcClientException排查求助
项目中Google Pay测试环境此前正常运行,近一年未做过任何GPay相关改动,但近期点击支付流程的「继续」按钮(对应Google Pay支付流程中确认支付信息后的跳转步骤)时,出现「Request Failed [RpcClientException]」错误,捕获到的日志如下:
2023-07-31 16:41:20.318 2792-4169 GmsTaskScheduler com.google.android.gms.persistent E sendWakeUpEvent called on SchedulerClientBroadcastStrategy 2023-07-31 16:41:20.321 3284-9819 Volley com.google.android.gms E [2916] fgx.b: Unexpected response code 500 for https://payments-pa.googleapis.com/payments/apis-secure/ui2/buyflowservice/submit 2023-07-31 16:41:20.328 3284-3632 O2NetworkAction com.google.android.gms E Network Error: java.util.concurrent.ExecutionException: com.android.volley.ServerError
报错弹窗底部显示「Request Failed [RpcClientException]」提示,支付流程中断。
可能的原因及解决方法
Google Pay测试环境配置过期
尽管本地代码未改动,但Google Pay测试环境可能更新了API规范或凭证要求。检查Google Pay开发者控制台中的API密钥、商户ID是否仍有效,确认支付请求配置里的apiVersion是否符合当前官方最低要求(当前为2),同步更新到最新的官方配置规范。Google Pay服务端临时故障或维护
日志中的500错误是Google Pay服务端返回的异常,大概率是服务端临时故障或区域性维护。查看Google官方的服务状态公告,等待服务恢复;若为区域性问题,可切换测试设备的网络环境重试。测试设备Google Play Services版本过旧
旧版本的Google Play Services可能与Google Pay更新后的服务端接口不兼容。在测试设备上更新Google Play Services到最新版本后,重新发起支付请求。测试支付凭证失效
之前使用的测试卡或支付令牌可能已过期。替换为Google Pay官方提供的最新测试卡信息(例如卡号4111 1111 1111 1111,有效期设为任意未来日期,CVV填任意3位数字),重新测试支付流程。
内容的提问来源于stack exchange,提问作者qwertyFanatic

