Android集成Google Pay遇ResolvableApiException错误[OR_BIEBD_01]
Android集成Google Pay触发ResolvableApiException错误[OR_BIEBD_01]
点击「使用Google Pay购买」按钮后触发ResolvableApiException,弹窗提示:
发生意外错误,请稍后重试。[OR_BIEBD_01]
已严格遵循示例步骤生成Payment JSON数据,具体内容如下:
{ "apiVersion": 2, "apiVersionMinor": 0, "allowedPaymentMethods": [ { "type": "CARD", "parameters": { "allowedAuthMethods": [ "仅卡号", "3DS加密令牌" ], "allowedCardNetworks": [ "美国运通", "发现卡", "Interac", "JCB", "万事达", "维萨" ], "billingAddressRequired": false }, "tokenizationSpecification": { "type": "PAYMENT_GATEWAY", "parameters": { "gateway": "example", "gatewayMerchantId": "gatewayMerchantId" } } } ], "transactionInfo": { "totalPrice": "10.0", "totalPriceStatus": "最终金额", "countryCode": "KSA", "currencyCode": "SAR", "checkoutOption": "立即完成购买" }, "merchantInfo": { "merchantName": "示例商户", "merchantId": "01234567890123456789" }, "shippingAddressRequired": false, "shippingAddressParameters": { "phoneNumberRequired": false, "allowedCountryCodes": [ "KSA" ] } }
ResolvableApiException异常信息:
{ "zza": {}, "zzb": { "zza": {}, "zzb": [], "zzc": false }, "zzc": true, "zzd": false, "zzf": { "mStatus": { "zzb": 1, "zzc": 6, "zzd": "需要显示购买流程UI。", "zze": {} }, "detailMessage": "6: 需要显示购买流程UI。", "stackTrace": [], "suppressedExceptions": [] } }
排查与解决建议
- 替换支付网关参数:当前
tokenizationSpecification使用的是示例值,需替换为实际支付网关提供的gateway标识和gatewayMerchantId,无效参数会导致流程中断。 - 验证商户ID有效性:确认
merchantInfo中的merchantId已在Google Pay商户控制台完成注册,且与当前应用的包名绑定,沙特地区商户需完成合规审核。 - 正确处理ResolvableApiException:该异常明确提示“需要显示购买流程UI”,需在代码中调用
startResolutionForResult()触发Google Pay的原生购买界面,示例代码:
private static final int PAYMENT_REQUEST_CODE = 1001; // 处理支付请求回调 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PAYMENT_REQUEST_CODE) { switch (resultCode) { case Activity.RESULT_OK: // 处理支付成功逻辑 break; case Activity.RESULT_CANCELED: // 用户取消支付 break; case AutoResolveHelper.RESULT_ERROR: Status status = AutoResolveHelper.getStatusFromIntent(data); // 处理错误状态 break; } } } // 捕获并处理ResolvableApiException if (exception instanceof ResolvableApiException) { try { ((ResolvableApiException) exception).startResolutionForResult(this, PAYMENT_REQUEST_CODE); } catch (IntentSender.SendIntentException e) { e.printStackTrace(); } }
- 简化卡组织列表:沙特地区部分小众卡组织可能未开通支持,可暂时移除「美国运通」「发现卡」「Interac」「JCB」,仅保留「万事达」「维萨」测试。
内容的提问来源于stack exchange,提问作者Anksmonani
相关产品推荐
相关产品推荐

