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

Razorpay OAuth集成交易报错令牌权限不足问题咨询

问题核心成因

抛出的错误The OAuth token used does not have sufficient permissions for this request本质是Razorpay服务端校验请求携带的鉴权凭证,不具备当前操作要求的对应权限,常见触发场景如下:

  • OAuth应用配置的授权范围(scope)缺失交易相关权限:创建OAuth应用时未勾选订单创建、支付发起对应的写权限,商户授权后下发的access_token、public_token天然不具备交易操作权限。
  • 鉴权方式使用错误:代授权商户创建订单时,错误使用平台自身的API Key/Secret做鉴权,没有使用商户授权获得的access_token作为Bearer鉴权凭证,导致请求实际操作用户和凭证所属主体不匹配。
  • 前端唤起支付的参数不匹配:react-razorpay组件初始化时,key参数错误传入了平台自身的公钥,没有传入对应商户的public_token,和后端返回的订单所属商户主体不一致,触发权限校验拦截。
  • 存储的凭证异常:数据库中存储的access_token过期、刷新token时权限范围丢失、public_token和access_token不属于同一个商户,都会导致校验失败。
  • 授权角色配置错误:OAuth应用配置的授权角色为只读角色,没有申请交易类操作的写权限。
排查解决步骤

按从易到难的顺序逐一校验即可定位问题:

  • 核对OAuth应用权限配置
    登录Razorpay合作伙伴后台,找到对应OAuth应用,检查授权流程中申请的scope列表,必须包含order.write、payment.write两个核心交易权限;如果权限缺失,更新配置后重新引导对应商户完成OAuth授权,用新下发的access_token、refresh_token、public_token全量替换数据库中存储的旧凭证。
  • 修正后端创建订单的鉴权逻辑
    代授权商户创建订单时,禁止使用平台自有的key_id/key_secret做Basic鉴权,必须在请求头中携带Authorization: Bearer <商户对应有效access_token>调用Razorpay订单创建接口,确认接口返回的订单信息中merchant_id和当前操作商户ID一致。
    可直接用Postman携带对应access_token手动调用创建订单接口,如果接口直接返回权限错误,可直接判定为凭证权限或后端鉴权逻辑问题。
  • 修正前端支付唤起参数
    使用react-razorpay组件唤起支付窗口时,初始化配置的key字段必须传入当前订单所属商户对应的public_token,禁止传入平台自有公钥,同时确保传入的order_id是该商户access_token创建的有效订单ID,禁止跨商户混用凭证和订单ID。
    如果Postman调创建订单接口正常,仅前端唤起支付时报错,可直接判定为前端传参的key(public_token)和订单所属商户不匹配。
  • 校验存储凭证的有效性
    拿数据库中存储的商户access_token调用Razorpay凭证查询接口,确认返回的scope包含所需交易权限、凭证状态有效未过期、绑定的商户ID匹配;如果是通过refresh_token刷新得到的新凭证,需要将新返回的access_token、public_token同步更新到数据库,禁止只更新access_token保留旧的public_token。

Razorpay权限不足报错截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:15:47