调用统一下单接口报错,急急急急急急急急急急急急急急急,<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[输入源“/body/xml/mch_id”映射到值字段“商户号”字符串规则校验失败,字符串必须匹配正则表达式“^[1-9]\d*$”]]></return_msg></xml>
生成xml如下,隐私信息我进行了替换,关键是,这个公众号之前使用一年了,就在前几天为了一个私有化部署改了一下公司信息配置,appid商户号之类的,现在新公众号却不能支付了,报错也是完全离谱,因为这个正则其实是匹配上了的
< xml >
< appid > sdsadsadada < /appid>
<body><![CDATA[sddsdasdada]]></body >
< mch_id > 1611430103 < /mch_id>
<nonce_str>91bce790a7434caf835bee162513bb82</nonce_str >
< notify_url > https: //xxxxxxxxxxxxxxxxxxxxxx</notify_url>
<openid>bbbbbbbbbbbbbbbbbbb</openid>
<out_trade_no>24b4226e13ce0a4b660f0fbaba5c5f1f</out_trade_no>
<spbill_create_ip>112.97.61.129</spbill_create_ip>
<total_fee>1000</total_fee>
<trade_type>JSAPI</trade_type>
<sign>aaaaaaaaaaaaaaaaaaa</sign>
</xml>
mch_id 的内容带空格了吧?正则校验不通过
我这边也发现了这个问题,检查下来根本没有什么破空格。何况系统配置是一致的,部分微信支付会出现这个报错,大部分都是正常的。而且是新注册的微信号会有这个问题,老的都没有这个问题。不知道微信这边是怎么搞的。
这个问题多半是你上报的XML数据出错了。今天也遇到这个问题然后找到原因了。分享给你看看有没有帮助。1,订单号一定要匹配这个正则。测试一下,例如(var s = /^[0-9a-zA-Z_\-\|\*]+$/;
s.test("2021081010055995"))2,把XML数据打印出来看看订单号有没有问题。例如(<out_trade_no>2021081017363248501005</out_trade_no>)3,大多是用的TP5框架,可能有时候url传参时候会有传订单号。而你接收时候用了($this->request->param('订单号'))接收。这个时候如果配置没有设置配置(url_common_param=true),这个时候接收到的参数里面就有一个.html。可能你的订单号就变成了(订单号.html),这样就报这个错误啦!所以您只要进行2步骤打印出来xml,就会发现订单号有问题了。3是我遇到的这个问题,分享给你看看对你有没有帮助!
怎么解决的 我也出现了这个问题 以前好好的没有动过
商户号类型是不是有问题
我不知道是你粘贴的问题、还是你请求的数据就长这样,咋这么多空格?数据前后都不应该有空格。
有人遇到过吗,能帮忙回答吗