传的xml如下
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xml>
<mch_appid>????</mch_appid>
<partner_trade_no>15668805829545040</partner_trade_no>
<openid>oYOU6wuwnl5NT2o0eavZd6GgM4yE</openid>
<check_name>NO_CHECK</check_name>
<amount>10</amount>
<desc>hb</desc>
<spbill_create_ip>192.168.99.1</spbill_create_ip>
<appid>????</appid>
<mchid>????</mchid>
<nonce_str>2a7767cda484466a85985c55feb7a00e</nonce_str>
<sign>????</sign>
</xml>
确认商户号没错,appid已经和商户号绑定,key也是用的api安全设置的key。
验证签名https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=20_1也通过了。
调用接口就报错签名错误。无解。

我整整折腾了一天,如果确实验签通过的话,一般这种情况,大概率是参数多了或者缺少必填参数造成的,请务必仔细检查下,我也是联系腾讯技术支持客服后,才检查发现自己的缘故,如果遇到情况,请参考官方示例(保证参数名称一样,顺序一样的情况下再试,很多时候把红包或者别的接口迁移过来会出现多参数的问题。另外看看付款到零钱的接口是不是被暂停了):
<xml>
<mch_appid>wxe062425f740c30d8</mch_appid>
<mchid>10000098</mchid>
<nonce_str>3PG2J4ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
<partner_trade_no>100000982014120919616</partner_trade_no>
<openid>ohO4Gt7wVPxIT1A9GjFaMYMiZY1s</openid>
<check_name>FORCE_CHECK</check_name>
<re_user_name>张三</re_user_name>
<amount>100</amount>
<desc>节日快乐!</desc>
<spbill_create_ip>10.2.3.10</spbill_create_ip>
<sign>C97BDBACF37622775366F38B629F45E3</sign>
</xml>
题主的参数里面 多了appid
我也遇到一样的问题,请问下最后是怎么解决的?谢谢
请问解决了吗?我也遇到这种情况了 代码里面的签名跟官网的校验工具生成的是一样的 但是就是报错说签名错误
大佬你的问题是咋解决的,我的也是验证通过了,但是调用api 就是签名错误
贴上我用tp5写的企业付款到零钱,你参考一下
publicfunctionsendMoney($amount,$re_openid,$desc='提现',$check_name=''){header("Content-Type: text/html; charset=utf-8");$total_amount= (100) *$amount;//提现的金额$data=array('mch_appid'=>'',//商户账号appid'mchid'=>'',//商户号'nonce_str'=>$this->createNoncestr(),//随机字符串'partner_trade_no'=>date('YmdHis').rand(1000, 9999),//商户订单号'openid'=>$re_openid,//用户openid'check_name'=>'NO_CHECK',//校验用户姓名选项,'re_user_name'=>$check_name,//收款用户姓名'amount'=>$total_amount,//金额'desc'=>$desc,//企业付款描述信息'spbill_create_ip'=>'123.196.128.121',//Ip地址);$secrect_key='';//API密码$data=array_filter($data);//过滤函数ksort($data);$str='';foreach($dataas$k=>$v) {$str.=$k.'='.$v.'&';}$str.='key='.$secrect_key;//把秘钥和字符串拼接起来$data['sign'] =strtoupper(md5($str));//用md5得到sign 转换成大写$xml=$this->arraytoxml($data);//拼接成xml的格式$url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; //调用接口$res=$this->wx_curl($xml,$url);$return=$this->xmltoarray($res);$responseObj= simplexml_load_string($res,'SimpleXMLElement', LIBXML_NOCDATA);$return_code=$responseObj->return_code;//SUCCESS 如果返回来SUCCESS,则发生成功,处理自己的逻辑$result_code=$responseObj->result_code;//SUCCESS 只有成功才会返回微信订单号payment_no$return_msg=$responseObj->return_msg;//如果非空 就是错误原因$err_code_des=$responseObj->err_code_des;//如果非空 就是错误原因$money= ["return_code"=>$return_code,"result_code"=>$result_code,"return_msg"=>$return_msg,"err_code_des"=>$err_code_des];return$success= json(["status"=>1,"content"=>"成功","result"=>$money]);}