Google Pay弹窗点击返回键触发loadPaymentData错误的识别处理方案
Google Pay取消支付场景识别方案
实现逻辑
Google Pay JS API返回的错误对象携带标准化statusCode字段,用户主动点击返回/关闭支付弹窗的场景,该字段值固定为CANCELED,只需在catch回调中优先判断该字段即可区分正常取消和真实支付异常。
修改后的代码示例
paymentsClient.loadPaymentData(paymentDataRequest) .then(function (paymentData) { console.log("paymentData", paymentData); // 处理支付数据,生成后续交互需要的payload const payload = handlePaymentData(paymentData); return payload; }).then(function (payload) { console.log("payload", payload); // 发送支付凭证到服务端完成后续流程 }).catch(function (err) { // 识别用户主动取消场景 if (err.statusCode === 'CANCELED') { console.log('用户取消Google Pay支付,可引导切换其他支付方式'); // 此处添加切换支付方式的业务逻辑即可 return; } // 非取消场景走正常错误处理逻辑 console.error('Google Pay支付异常:', err); // 可选:按错误类型做精细化处理 switch(err.statusCode) { case 'DEVELOPER_ERROR': console.error('支付参数配置错误,请检查Google Pay配置项'); break; case 'BUYER_ACCOUNT_ERROR': console.error('用户Google账号异常,无法完成支付'); break; case 'MERCHANT_ACCOUNT_ERROR': console.error('商户账户配置异常'); break; default: console.error('未知支付错误'); } });
注意事项
- 原代码第一个
then需要主动返回处理后的payload,否则第二个then接收的payload会为undefined - 该判断逻辑兼容所有主流版本的Google Pay JS API,不需要额外依赖
内容的提问来源于stack exchange,提问作者jagdipa
相关产品推荐
相关产品推荐

