You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razorpay支付集成报错:未找到合适的支付方式(No appropriate payment method found)求助

问题原因排查与解决方案

我帮你梳理了代码和常见问题,找到几个核心原因,咱们一步步解决:

1. 最关键的错误:Checkout的Key ID配置错误

看你startPayment方法里的这行代码:

checkout.setKeyID("my key my secret key")

这里错误地把Key ID和Secret Key拼接在一起传入了!setKeyID只需要单独传入你在Razorpay平台获取的Key ID(就是创建Order时用的第一个参数),Secret Key是后端专用的敏感信息,绝对不能暴露在前端代码里!

2. 验证Order参数的有效性

虽然你创建Order的代码逻辑没问题,但还是要确认:

  • amount确实是最小货币单位(比如50000对应500印度卢比),这个是正确的
  • currency设置为INR,且你的Razorpay账号(测试账号默认支持)允许使用该货币
  • 创建Order时返回的order对象是有效状态,没有抛出异常

修复后的完整代码示例

修正Key ID配置后的代码如下:

val razorpay = RazorpayClient("your_key_id", "your_secret_key")
val orderRequest = JSONObject()
orderRequest.put("amount", 50000); // amount in the smallest currency unit
orderRequest.put("currency", "INR");
orderRequest.put("receipt", "order_rcptid_11")
try {
    val order: Order = razorpay.Orders.create(orderRequest)
    Timber.d("order : $order")
    startPayment(order)
} catch (e: RazorpayException) {
    Timber.e(e)
}

private fun startPayment(order: Order) {
    val checkout = Checkout()
    // 仅传入Key ID,不要包含Secret Key
    checkout.setKeyID("your_key_id")
    val activity: Activity = this
    try {
        checkout.open(activity, order.toJson())
    } catch (e: Exception) {
        Toast.makeText(activity, "Error in payment: " + e.message, Toast.LENGTH_LONG).show()
        e.printStackTrace()
    }
}

额外排查点(若修复后仍报错)

  • 确认设备网络正常,能访问Razorpay支付网关
  • 检查是否使用了测试环境的Key ID(生产环境Key在测试场景下会限制支付方式)
  • 确保Razorpay SDK是最新版本,旧版本可能存在兼容性问题

内容的提问来源于stack exchange,提问作者subrata sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 09:07:35