React Native iOS/Android集成Razorpay打开结账UI触发支付失败报错
Razorpay集成报错排查解决方案
1 基础参数校验
- 你当前代码中的
order_id处于注释状态,哪怕已从服务端获取到正确值,未传入options也会触发报错,请先取消注释,确保字符串格式的order_id正确传入。 - 确认服务端生成order_id时传入的amount、currency参数,和你前端options中填写的对应值完全一致,两者不匹配会触发校验失败。
amount参数要求为数字类型,且为对应货币的最小单位值:币种为INR时,1卢比=100派士,若需收取100卢比,amount应填写10000而非字符串格式的"100",格式或单位错误都会导致支付失败。- 检查你填写的
key与Razorpay后台环境是否匹配:测试环境用测试Key、生产环境用生产Key,不可混用,同时确认对应账号的支付方式配置已开启。
2 分端针对性排查
iOS端(报错:payment failed unexpected error)
- 检查iOS项目是否配置了Razorpay要求的ATS例外规则,允许加载Razorpay相关域名,未配置会导致结账页加载失败抛出异常。
- 确认Razorpay React Native SDK版本与iOS原生依赖版本匹配,版本不兼容会导致回调异常。
- 测试阶段使用debug模式配合测试Key走沙箱环境验证,不要用生产证书打包测试。
安卓端(报错:no appropriate payment method found)
- 先确认Razorpay账号后台的支付方式开关已开启:测试环境默认开启UPI、银行卡等常用支付方式,生产环境需自行申请开通对应支付方式。
- 检查安卓项目
AndroidManifest.xml中是否已添加Razorpay要求的网络权限、支付相关Activity配置,缺失配置会导致无法唤起支付组件。 - 确认测试设备有可用的支付应用(如支持UPI的应用),沙箱测试请使用Razorpay官方提供的测试卡、测试UPI ID验证,不要用真实支付信息测试。
- 若开启了代码混淆,确保Razorpay相关类没有被混淆裁剪。
3 其他验证方案
- 打印完整的错误日志,除description外额外查看error.code、error.error字段,错误码1通常对应参数校验失败,优先核对所有传入参数是否符合Razorpay的参数规范。
- 临时注释自定义theme配置,使用默认主题测试,排除自定义颜色不兼容导致的加载失败。
内容的提问来源于stack exchange,提问作者Shafaq Shaikh
相关产品推荐
相关产品推荐

