一、报错信息
接口名称:requestPayment
对应业务:微信小程序 -> 调起支付
错误信息:
- 由于小程序违规,支付功能暂时无法使用
- {“errno”:102,”errMsg”:”requestPayment:fail :access denied, appId=wx9cc*********d9a1″}
- {“errno”: 102, “errMsg”: “requestPayment:fail jsapi has no permission, event=requestPayment, runningState=foreground, permissionMsg=permission got, detail=jsapi has been banned, appId=wxf2********87”}
- {“errMsg”:”requestPayment:fail banned”}
- {“errMsg”:”requestPayment:fail no permission”}
二、问题原因
1. 常见原因
根据新版《交易类小程序运营规范》在小程序生态中提供商品/服务在线销售及配送的小程序需要接入”微信小程序订单管理“(原”订单发货管理“、”订单信息录入“)能力;经营B2b业务的小程序,需使用小程序B2b门店助手支付服务进行交易。
2. 其他原因
1)根据相关法律法规及平台运营规范要求,小程序需要备案通过后才可以使用支付能力
2)个人主体小程序不支持支付能力
3)未通过认证的小程序或者未进行年审的小程序不支持调用支付
4)小程序存在违规行为被处罚
三、快速排查
- 检查调用小程序主体类型是否未非个人主体
- 小程序备案是否已备案通过
- 小程序是否已认证或已年审
- 小程序是否接入”微信小程序订单管理“能力
- 小程序是否存在”ios虚拟支付”、”未缴纳保证金”等限制支付能力的处罚
四、解决方案
根据提示的错误信息选择对应处理方案,使用浏览器自带搜索能力可以更快速查找
1. {“errMsg”:”requestPayment:fail no permission”}
小程序主体类型为个人主体没有支付能力,如果需要使用支付能力需要进行主体变更或者使用非个人主体注册小程序。
2.{“errMsg”:”requestPayment:fail banned”}
小程序类目添加过”B2b(商品批发/门店管理)”类目,此类目添加之后即使删除也会被管控
1)接入B2b门店助手支付,不使用requestPayment发起支付
2)如误操作添加”B2b(商品批发/门店管理)”类目,不想接入B2b门店助手支付可以联系微信小程序类目客服申请解除管控,客服入口:小程序MP后台 -> 账号设置 -> 基本设置 -> 服务类目“详细” -> 联系客服

3. {“errno”: 102, “errMsg”: “requestPayment:fail jsapi has no permission, event=requestPayment, runningState=foreground, permissionMsg=permission got, detail=jsapi has been banned, appId=wxf287”}
小程序需对所有已经/正在关联的商户号完成「交易结算管理确认授权」,授权后方可关联成功继续用于收款。其中,从业机构特约商户需联系从业机构(银行、支付机构)完成授权。
从业机构(银行、支付机构)、普通服务商等两类商户暂不支持接入上述资金结算方式。实物电商类小程序暂不支持和上述类型的商户号关联,此类服务商商户号也无法进行授权,因此需要对此类商户号进行解绑操作。
详细操作说明:
在小程序MP后台左侧菜单中的「支付与交易」选择「微信支付」,若确认已关联的商户号还需用于收款,点击对应商户后的「授权」按钮发起授权请求


发起授权请求成功后,对应商户授权状态为”待确认”,此时联系对应授权商户号的超级管理员前往“微信支付商家助手”公众号查看通知并确认(需要有关注“微信支付商家助手”公众号)

对于所有无法完成授权的商户号,均需进行解绑,操作步骤:
点击对应商户后的「解绑」按钮发起解绑请求

点击”确认解绑”完成解绑操作,注意:此操作不可逆,请慎重操作

4. {“errno”:102,”errMsg”:”requestPayment:fail :access denied, appId=wx9cc*********d9a1″}
小程序只进行了「交易结算管理确认授权」,而未进行「微信小程序订单管理」接入
操作步骤:
小程序MP后台 -> 支付与交易菜单中「订单管理」-> 订单信息录入 -> 「同意并接入」订单与卡包功能

在订单信息录入页面,录入小程序商品订单Path
PATH需包含「${商品订单号} 」,微信将把你在微信支付预下单接口填入的 out_trade_no 替换此内容,以下为示例需要你替换为自己小程序实际页面路径:「pages/order/order-detail/order-detail?out_trade_no=${商品订单号}」。PATH只支持1条。用户在微信“订单与卡包”中订单点击「前往小程序」,此时会带商品订单号跳转到你录入的商品订单path页面,需要做好兼容

5. 由于小程序违规,支付功能暂时无法使用
在小程序MP后台查询站内信没有违规通知的情况下参考解决方案3、4部分的requestPayment:fail :access denied,与requestPayment:fail jsapi has no permission即可
如果有收到”ios虚拟支付”、”未缴纳保证金”等限制支付能力的处罚,需根据站内信通知指引进行操作。