React Native集成Paytm时出现该商户不允许App调用错误如何解决?
报错
App Invoke is not allowed for this merchant产生原因 - 商户App调用权限未开通:Paytm平台的「App Invoke」支付能力需要单独申请开通,尤其是新申请的测试/正式商户,该权限默认处于关闭状态,未开通就发起调用就会触发该报错。
- 商户配置信息不匹配:你代码中传入的
MID(商户ID)、Merchant Key和当前使用的环境(测试/生产)不匹配,或者参数本身填写错误,也会触发平台的权限校验失败。 - 回调地址校验不通过:Paytm要求商户后台配置的回调URL,和你发起支付请求时传入的
callbackUrl参数完全一致,包括协议头、路径、后缀、查询参数都不能有差异,否则会被判定为非法调用。 - 应用身份校验失败:生产环境下,你在Paytm商户后台绑定的App包名、应用签名,和你当前打包运行的App的包名、SHA256签名不一致,就会被平台拦截调用。
- 测试环境白名单未配置:使用Paytm测试环境时,你的测试设备IP、测试支付用的手机号没有加入商户测试白名单,也会触发这类权限类报错。
排查解决步骤
- 首先确认「App Invoke」权限状态:登录Paytm商户后台,搜索「App Invoke」功能入口,确认该功能已经提交申请并审核通过启用,测试环境可以直接联系Paytm对接的技术支持快速开通权限。
- 核对环境配置参数:确认当前项目中使用的
MID、Merchant Key和运行环境匹配,测试环境的商户凭证不能用于生产环境,反之同理,同时确认发起支付时传入的environment参数和凭证对应,测试环境传TEST、生产环境传PROD。 - 核对回调地址配置:对比Paytm商户后台填写的回调URL,和代码中
callbackUrl参数的取值,保证两者完全一致。 - 核对应用身份信息:生产环境下确认你打包App使用的包名、SHA256签名,和你在Paytm商户后台提交的绑定信息完全一致;测试环境可以暂时不校验签名,但包名需要和后台填写的测试包名一致。
- 测试环境加白操作:如果是测试环境调试,提前把测试用的手机号、设备公网IP提交给Paytm对接人员,加入测试白名单后再发起支付请求。
- 临时调试方案:如果权限开通需要等待,调试阶段可以先把支付调用模式切换为WebView模式,绕过App Invoke权限校验,等权限开通后再切回原生调用模式。
内容的提问来源于stack exchange,提问作者user14877357
相关产品推荐
相关产品推荐

