---
url: "https://pay.weixin.qq.com/doc/v3/merchant/4012791869.md"
title: "常见问题"
doc_id: 4012791869
---

>更新时间：2026.06.29

## 技术常见问题

### 前端报错

#### Q：调起支付提示“交易失败，今日收款超出单日收款最大金额”

A：

小微商户日收款额度为1万-30万，以当日实际收款提示情况为准，信用卡日收款限额为1000元，月收款限额调整为10000元。

其他类型商户没有限额，可通过[商户平台](https://pay.weixin.qq.com/)站内信或下方指引，查询是否有违约记录。

商户违约记录查询与申诉指引（移动端）：[https://kf.qq.com/faq/240129aQZjiM240129QRBFRV.html](https://kf.qq.com/faq/240129aQZjiM240129QRBFRV.html)

微信支付商户自查违约记录/申诉指引（电脑端）：[https://kf.qq.com/faq/240129iuEZBJ240129meAR3u.html](https://kf.qq.com/faq/240129iuEZBJ240129meAR3u.html)

#### Q：JSAPI调起支付报错"当前页面的URL未注册"

A：请参考[配置JSAPI支付目录](https://pay.weixin.qq.com/doc/v3/merchant/4013287088.md)。

#### Q：JSAPI调起支付报错"该商户暂不支持通过外部拉起微信完成支付"

A：JSAPI支付必需从微信浏览器里调起。

#### Q：JSAPI调起支付报错"JSAPI缺少参数total\_fee"

A：请按照以下两点检查：

1，package参数格式错误，正确的package参数格式应该prepay\_id=xxx，例如package:"prepay\_id=wx201222229874569b201de80e089456213"。

2，package参数为空，请按照文档要求上传正确的参数。

#### Q：JSAPI调起支付报错"下单账号与支付账号不一致，请核实后再支付"

A：JSAPI下单传的openid所属用户需要和实际调起支付用户一致。

#### Q：如何判断用户是通过微信内置浏览器还是外部浏览器访问商户的H5网页？

A：可以使用下列代码判断是否在微信内置浏览器打开，true为微信内部浏览器

```
/**
 * 检测当前是否运行在微信内置浏览器中
 */
function detectWeChatBrowser() {
  // 确保 navigator 对象存在（避免特殊运行环境报错）
  if (typeof navigator === 'undefined') {
    console.warn('当前环境无 navigator 对象，无法检测浏览器类型');
    return;
  }

  // 使用 includes 替代 indexOf，语义更清晰（ES6 特性，现代浏览器均支持）
  const isWeChat = navigator.userAgent.includes('MicroMessenger');
  //若需支持 IE11 等不支持 includes的旧浏览器，可将 includes替换为 indexOf !== -1
  //const isWeChat = navigator.userAgent.indexOf('MicroMessenger') !== -1;

  // 三元表达式简化条件输出
  console.log(isWeChat ? '微信内置浏览器' : '外部浏览器');
}

// 执行检测
detectWeChatBrowser();
```

#### Q：前端如何判断是用户主动取消支付，还是密码输入错误导致失败？

A：可以判断用户取消支付，无法判断密码输入错误，密码输入错误不是终态，用户还可以继续输入密码。

- 小程序支付：requestPayment:fail cancel（用户取消支付），参考[小程序调起支付](https://pay.weixin.qq.com/doc/v3/merchant/4012791898.md)。

- App支付：errCode=-2（用户取消支付），参考[APP调起支付](https://pay.weixin.qq.com/doc/v3/merchant/4013070351.md)。

- JSAPI支付：get\_brand\_wcpay\_request:cancel（用户取消支付），参考[JSAPI调起支付](https://pay.weixin.qq.com/doc/v3/merchant/4012791857.md)。


注意：前端回调并不保证它绝对可靠，不可只依赖前端回调判断订单支付状态，订单状态需以后端查询订单和支付成功回调通知为准。

#### Q：支付和退款可以分别使用不同版本（v2和v3）的接口吗？

A：可以，但不建议跨版本使用。

#### Q：微信小游戏调起JSAPI支付提示：“WeixinJSBridge.invoke is not a function”

A：微信小游戏不支持调用JSAPI支付，需要使用[小游戏虚拟支付](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/virtual-payment/guide.html)。

#### Q：JSAPI调起支付报错：system:access\_denied

A：参考以下几点排查：

1、小程序不支持内嵌web-view发起JSAPI支付

2、调起支付的页面url过长会导致微信webview鉴权异常，需要商户精简下url长度。

#### Q：JSAPI调起支付报错：“调用支付JSAPI缺少参数: appld”

A：参考以下几点排查：

1、请检查调起支付的参数是否传入了 `appId`；

2、如使用的是JS-SDK中的wx.chooseWXpay方法拉起支付，该方法调起支付时的appId依赖wx.config获取，请检查wx.config注入是否成功。

#### Q：JSAPI调起支付报错：此公众号并没有这些scope的权限，错误码：10005？

A：参考以下几点排查：

1、建议检查一下公众号的功能。比如是不是在订阅号/未认证的公众号里面尝试调用认证服务号的功能。

2、微信支付认证过期或者APPID填写错误。

3、请使用snsapi\_userinfo的授权登录方式即可解决。

#### Q：JSAPI调起支付报错"调用支付JSAPI缺少参数:package"？

A：参考以下几点排查：

1、请检查调起支付的参数是否传入了package参数；

2、请检查package参数格式是否为prepay\_id=xxx，例如："package": "prepay\_id=wx201612032137789b201de80e0661234657"（需与[JSAPI下单](https://pay.weixin.qq.com/doc/v3/merchant/4012791856.md)接口返回的prepay\_id一致）。

#### Q：公众号支付报错：{errMsg: "chooseWXPay:fail, the permission value is offline verifying"}？

A：请按照以下几点检查：

1、请勿在模拟器中实行发起支付，请在真机发起；

2、微信公众号支付授权目录填写实际发起支付的url地址。

举例：

页面：http://www.newfms.com/order/pay/id-115

此处填：http://www.newfms.com/order/pay/

#### Q：JSAPI调起支付报错：redirect\_url域名与后台配置不一致，错误码：10003？

A：参考以下几点排查：

1、本错误是公众号获取openid接口报的错误，接口文档：[http://mp.weixin.qq.com/wiki?t=resource/res\_main&id=mp1421140842](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842)

2、检查下单接口传的appid与获取openid接口的appid是否同一个（需一致）

3、检查appid对应的[公众号后台](http://mp.weixin.qq.com/)，是否配置的授权域名和获取openid的域名一致。授权域名配置路径：公众平台--设置--公众号设置--功能设置--网页授权域名

#### Q：JSAPI调起支付报错：商家暂时没有此类交易权限，请联系商家客服？

A：参考以下几点排查：

1、请检查你的下单接口是否指定了支付用户的身份，需单独开通指定身份支付权限方可使用

2、请确认你使用的商户号是否有jsapi支付的权限，可登录商户平台-产品中心查看

#### Q：JSAPI调起支付报错：当前页面的URL未注册：http://www.weixin.qq.com/pay.do？

A：请检查下单接口中使用的商户号是否在[商户平台](http://pay.weixin.qq.com/)配置了对应的支付目录。

### 后端报错（接口）

#### Q：JSAPI/小程序下单返回报错"appid和mch\_id不匹配，请检查后再试"

A：下单传的appid需要和商户号绑定，详细请参考[微信支付普通商户与AppID账号关联管理](https://kf.qq.com/faq/1801116VJfua1801113QVNVz.html)。

#### Q：JSAPI/小程序下单返回报错"appid与openid不匹配"

A：下单传的openid不存在或者不是从对应appid下的，获取方式详见[参数说明](https://pay.weixin.qq.com/doc/v3/merchant/4012068676.md)。

#### Q：下单接口返回”此商家的收款功能已被限制，暂无法支付。商家可登录微信商户平台/微信支付商家助手小程序/经营账户页面查看原因和解决方案“报错如何处理？

A：商户号超级管理员可通过“微信支付商家助手”公众号，点击“我的商家”；或小程序搜索“微信支付商家助手”关键字进入“微信支付商家助手”小程序，进行解脱。

具体步骤请参考：

商户违约记录查询与申诉指引（移动端）：[https://kf.qq.com/faq/240129aQZjiM240129QRBFRV.html](https://kf.qq.com/faq/240129aQZjiM240129QRBFRV.html)

微信支付商户自查违约记录/申诉指引（电脑端）：[https://kf.qq.com/faq/240129iuEZBJ240129meAR3u.html](https://kf.qq.com/faq/240129iuEZBJ240129meAR3u.html)

#### Q：调用接口报错：“商户未申请过证书。请到商户平台上申请证书授权机构颁发的证书。详情可参考:http://kf.qq.com/faq/180824JvUZ3i180824YvMNJj.html。”

A：请核实请求头传入的mchid商户号有没有申请商户API证书，如未申请，请参考[商户API证书申请指引](https://kf.qq.com/faq/161222NneAJf161222U7fARv.html)。

#### Q：在微信支付中，transaction\_id与prepay\_id这两个订单号字段有什么区别？

A：

1、 prepay\_id ：商户调用微信支付下单接口成功后返回的预支付交易会话标识，用于拉起支付（如JSAPI、APP支付等），有效期为2小时

2、transaction\_id ：支付成功后由微信支付系统生成的订单号，用于唯一标识一笔成功支付的交易，仅在支付成功回调或查单接口中返回。

#### Q：下单返回报错："商户号该产品权限未开通，请前往商户平台>产品中心检查后重试"

A：需要先开通权限，请参考[开发接入准备-步骤4](https://pay.weixin.qq.com/doc/v3/merchant/4015423216.md)。

#### Q：下单返回报错：{"code":"PARAM\_ERROR";"message":"受理机构必须传入sub\_mch\_id"}

A：服务商商户号无法调用普通商户模式接口。

#### Q：v3支付回调通知解密报错：“init client setting err:decrypt downloaded certificate failed: cipher: message authentication failed”。

A：请参考以下几点排查：

1、解密使用的APIv3密钥错误。

2、检查密文是否被截断或篡改（需完整传递ciphertext、associated\_data、nonce）。

#### Q：通过哪个接口可以查询商户号结算信息？

A：可以通过[申请资金账单接口](https://pay.weixin.qq.com/doc/v3/merchant/4012791867.md)获取商户号结算信息。

#### Q：支付回调怎么测试？

A：微信支付未提供线上测试回调接口。如需测试支付回调功能，建议通过生产环境验证，在真实支付场景中测试回调地址是否能正常接收通知。

注意：回调地址需确保公网可访问的，详细参考[回调通知注意事项](https://pay.weixin.qq.com/doc/v3/merchant/4012075420.md)。

#### Q：下单报错：{"code":"SIGN\_ERROR","message":"商户证书序列号有误。请使用签名私钥匹配的证书序列号"}，什么原因？

A：请求的Authorization头中的商户API证书序列号serial\_no，与用于计算签名的商户API证书私钥不匹配。可参考[如何计算签名](https://pay.weixin.qq.com/doc/v3/merchant/4012365336.md#4.-%E8%AE%BE%E7%BD%AEHTTP%E5%A4%B4)指引排查。

#### Q：下单报错：{ "code": "PARAM\_ERROR","message": "http header中的mchid与post payload中的mchid不匹配"}，是什么原因？

A：请求头中的 `mchid` 与请求体中的 `mchid` 不一致，请检查参数传递是否正确。

#### Q：第一次下单未支付，第二次用同一个out\_trade\_no再次调用可以吗？

A：可以。需保证所有参数与首次下单一致（如 appid、mchid、金额、商品描述等），否则会报“201 商户订单号重复”错误。

#### Q：下单返回商户订单号重复是什么原因？

A：同一个商户订单号(out\_trade\_no)，不允许更换参数或更换其他下单接口重复下单。

#### Q：回调验签报错：“Last unit does not have enough valid bits”，是什么原因，如何处理？

A：

- 原因：这是[签名探测流量](https://pay.weixin.qq.com/doc/v3/merchant/4013053420.md#5.-%E5%BA%94%E5%AF%B9%E7%AD%BE%E5%90%8D%E6%8E%A2%E6%B5%8B%E6%B5%81%E9%87%8F)导致的报错。探测流量的签名值不是合法的Base64，会触发“Last unit does not have enough valid bits”这类Base64解码错误。

- 快速判断：查看回调头 Wechatpay-Signature 的值，若以“WECHATPAY/SIGNTEST/”为前缀，即可确认是探测流量签名。

- 处理建议：对探测流量回调，正常返回失败（非2xx），不要按业务成功处理，等待后续微信返回带有正确签名的正式回调。


#### Q：开通了商户号，如果长期没发生交易收款，商户号会被关闭吗？

A：1、连续30天无收单交易：关闭信用卡支付、全渠道收单限额

2、连续90天无收单交易且资料异常 或 连续365天无收单交易：关闭收单权限

3、入驻以来连续180天交易：不收不付（保留退款）管控。

#### Q：下单接口总金额amount.total如果传0会报什么错误？

A：报错：{"code": "PARAM\_ERROR","message": "输入源“/body/amount/total”映射到数值字段“总金额”规则校验失败，值低于最小值 1"}。

#### Q：调用微信订单号查询订单接口或商户订单号查询订单接口报错：“商户号和订单信息不匹配”，什么原因？

A：参考以下几点排查：

1、确认请求中 `mchid`（普通商户模式）或 `sp_mchid`/ `sub_mchid`（服务商模式）是否与下单时使用的商户号一致；

2、确保查询的订单号（ `out_trade_no` 或 `transaction_id`）属于当前商户号下的订单。

#### Q：在商户平台，是否可以直接查看订单的回调通知或回调状态，而不需要调用查单接口？

A：商户平台不支持查看回调通知或回调状态，订单结果需调用查单接口查询。

#### Q：关单接口是否支持重复调用？

A：关单接口支持重入。

#### Q：后台显示公众号认证已过期，为何仍能支付成功？

A：公众号年审认证到期后享有7天自动续期。当前账号处于续期保护期内，需在续期结束前完成微信认证。

#### Q：查单接口能查到多久以前的订单？是否有时间上的限制？

A：暂无时间限制