接入易错点
更新时间:2026.10.30一、场景与调用入口
注意事项 | 说明、正确应该怎么做 | 不做会怎么样 |
|---|---|---|
小程序内不得通过 | 说明:小程序 | 正式环境下调起被拦截,返回 |
小程序经营虚拟商品须接入官方虚拟支付能力,不涉及虚拟商品的须补充实物或服务类目 | 说明:小程序经营虚拟商品交易的,须统一接入「官方虚拟支付能力」用于安卓及其余非 iOS 系统的线上支付;如小程序不涉及虚拟商品交易服务,须在账号后台补充实物交易/服务类目,能力限制将自动解封。 | 小程序使用 JSAPI 支付时提示「小程序对应支付能力已被限制」,线上收款整体不可用。 |
二、产品权限与 AppID 绑定
注意事项 | 说明、正确应该怎么做 | 不做会怎么样 |
|---|---|---|
指定身份支付须先单独开通权限 | 说明:基础支付下单指定支付用户身份时,需单独开通指定身份支付权限;基础支付支持传入指定支付人姓名和身份证号进行本人支付检验。 | 未开通指定身份支付权限时,相关下单或支付会提示商家暂无此类交易权限,指定支付人身份的校验能力无法使用。 |
调用 APIv3 JSAPI 下单前须开通 JSAPI 支付产品权限并完成 AppID 绑定 | 说明:JSAPI 支付是需单独申请的产品权限,同一商户号已开通的其他支付产品(如医保移动支付)权限不等同于 JSAPI 支付权限;下单使用的 | 调用 |
三、AppID、OpenID 与用户身份
注意事项 | 说明、正确应该怎么做 | 不做会怎么样 |
|---|---|---|
JSAPI 支付须绑定并使用已通过微信认证的服务号 | 说明:微信客户端内网页支付(JSAPI 支付)需要用已通过微信认证的服务号(或政府、媒体类认证公众号)的 | 调起支付时报「此公众号并没有这些 scope 的权限」,错误码 10005;使用小程序 |
网页授权须按所需 scope 使用 snsapi_userinfo 授权方式 | 说明:需要获取用户身份信息或完成微信登录时,网页授权须使用 | 授权与登录阶段报「此公众号并没有这些 scope 的权限」,错误码 10005,微信登录与后续支付流程中断。 |
网页授权回调须公网可达且不能依赖固定IP | 说明:网页授权回调由用户浏览器访问 | 用户授权后回调页面不可达,无法取得 |
网页授权 | 说明:网页授权的 | 换取 |
JSAPI 下单的 | 说明:下单传入的 | 下单返回 |
下单传入的 | 说明:下单 | 用户调起支付时提示「下单账号与支付账号不一致,请核实后再支付」,无法完成付款;同一商户号下批量出现时表现为大面积支付失败。 |
四、支付授权目录与网页授权域名
注意事项 | 说明、正确应该怎么做 | 不做会怎么样 |
|---|---|---|
获取 | 说明:这是两套相互独立的配置——网页授权域名在公众平台(该 | 网页授权跳转报「redirect_uri域名和后台配置不一致,错误码 10003」,拿不到 |
支付授权目录须按调起支付页面的实际目录配置,协议、域名、目录与大小写均须一致 | 说明:调起收银台前会校验实际支付页面 URL 与商户平台(服务商模式为服务商平台)配置的支付授权目录是否匹配;只配置到域名时只校验协议与域名,配置到最后一级目录时还校验多级目录;区分大小写、不支持 IP 形式,须以 | 调起支付时提示「当前页面的 URL 未注册」,用户无法拉起收银台;使用 JS-SDK 时表现为 |
网页授权域名须在公众平台配置为完整域名,并与实际授权回调域名一致 | 说明:网页授权域名须填写实际发起授权的完整域名,只填主域名不覆盖其下子域名;服务商机构下的交易仍须在该 | 授权阶段报「redirect_url 域名与后台配置不一致」(错误码 10003),或交易报「解析 openid 业务失败」,取不到 |
五、签名、证书与验签
注意事项 | 说明、正确应该怎么做 | 不做会怎么样 |
|---|---|---|
使用 APIv3 须先在商户平台设置 APIv3 密钥,才能解密支付成功回调取得业务内容 | 说明:APIv3 回调通知中的业务数据以 | 用户已支付成功但商户侧收不到支付成功回调通知;即使收到回调,也因缺少 APIv3 密钥无法解密出业务内容,订单状态无法及时更新,只能靠查单兜底。 |
新申请商户号默认使用微信支付公钥验签模式,须按实际验签模式获取验签凭证 | 说明:目前新申请的商户号默认使用微信支付公钥验签模式,该模式下没有平台证书,调用下载平台证书接口( | 调用 |
六、防重复下单与 prepay_id 有效期
注意事项 | 说明、正确应该怎么做 | 不做会怎么样 |
|---|---|---|
前端支付入口须做防抖拦截,服务端须对同一业务单据做幂等控制 | 说明:支付结果确认前若再次露出支付入口,且服务端未做幂等校验,用户在快速连点、网络卡顿或设备响应延时下会对同一笔业务生成多笔不同 | 同一笔业务生成多笔订单并导致用户重复扣款,商家收到用户客诉并产生额外的人工核对与退款成本;在充电桩、场馆预约等场景下还会造成同一用户占用多份设备或库存资源。 |
调起支付须在 | 说明:JSAPI 下单成功后返回的 | 用已过期的 |
七、调起支付参数与 JS-SDK
注意事项 | 说明、正确应该怎么做 | 不做会怎么样 |
|---|---|---|
使用 JS-SDK 调起支付前须先完成 | 说明: | 首次可能偶尔调起成功、之后每次调起均报 |
调起支付的 | 说明:调起支付时 | 前端报「调用支付JSAPI缺少参数:total_fee」,无法拉起收银台。 |
调起支付参数 | 说明:调起支付参数 | 无法调起支付,或提示账号不一致,用户无法完成付款。 |
下单接口的 | 说明:该参数在 JSAPI 下单接口的请求包体中为全小写 | 调起参数缺少 |
八、支付结果、查单与关单
注意事项 | 说明、正确应该怎么做 | 不做会怎么样 |
|---|---|---|
支付回调地址须公网可达并以查单兜底 | 说明: | 回调请求超时或失败(工单日志为 |
| 说明:未支付状态下用户仍可能继续完成付款;需要订单进入终态时,须由商户主动调用关单接口。下单未传 | 出现「微信侧已支付、商户侧记为失败」的差异单,引发重复下单、超卖或漏发货;不主动关单时订单长时间停留在未支付态,商户无法判断终态。 |
下单与查单须使用同一套产品接口,不得跨产品混用 | 说明:通过基础支付统一下单接口创建的订单,须使用对应的基础支付查单接口查询,不能用其他产品(如酒店押金)的查单接口查询该笔订单;操作员手工查询时须按订单业务类型区分查询入口。 | 跨产品查单后续可能返回报错,订单状态无法确认,对账与补单流程受阻。 |
下单须传入 | 说明: | 商户业务上已超时失效的订单在微信侧仍可被支付,产生「已释放库存或已过期优惠却被付款」的差异单;未传 |
APIv3 支付是否成功须看查单的 | 说明: | 把下单返回的 |
