Android Studio集成Phone Pay网关卡支付失败,报ERROR_B2B_API_RETURNED_ERROR
解决PhonePe Android SDK卡支付ERROR_B2B_API_RETURNED_ERROR问题
以下是针对性的排查和解决步骤:
核对卡支付专属请求路径
UPI支付和卡支付的API端点不同,卡支付需使用对应版本的专属交易路径(如测试环境为/v1/payments/pg),不能复用UPI的请求路径。确认你的请求URL是PhonePe文档中指定的卡支付端点。校验卡支付参数完整性与正确性
- 确保
paymentInstrument的类型设置为CARD,并包含完整的卡支付所需参数结构(如cardDetails相关字段,若SDK封装则需确认参数传递无误)。 - 检查
amount是否以最小货币单位(如印度卢比的paisa)传入,不能包含小数;merchantTransactionId需保证唯一且符合格式要求。
- 确保
验证签名生成逻辑
- 确认卡支付请求的签名是基于完整的卡支付payload生成,使用的是对应环境(测试/生产)的商户私钥,签名算法为SHA256withRSA。避免将UPI的签名逻辑直接套用在卡支付请求上。
检查商户配置与权限
- 联系PhonePe商务团队,确认你的商户账号已开通卡支付权限(部分商户默认仅开通UPI支付)。
- 核实测试设备的包名、应用签名SHA1已添加至PhonePe商户后台的测试白名单中,卡支付对该验证的要求更严格。
排查SDK集成细节
- 更新PhonePe SDK至官方最新版本,旧版本可能存在卡支付功能的兼容问题。
- 在
onActivityResult中解析完整错误响应,查看key_error_message字段获取具体错误原因(如参数非法、权限不足等),仅靠错误码无法定位精准问题。 - 确认SDK初始化时已配置支持卡支付的相关参数,未遗漏必要配置项。
区分测试与生产环境
确保卡支付请求指向正确的环境:测试环境域名通常为api-preprod.phonepe.com,生产环境为api.phonepe.com,避免跨环境请求导致的错误。
内容的提问来源于stack exchange,提问作者Ajinkya Waghmode
相关产品推荐
相关产品推荐

