微信支付报错:统一下单和拉起支付的appid不一致
错误码:-2
提示参考:
参考统一下单的API
(谦信君原创,转载请注明来源)
原因排查:
我们做的是APP微信支付
客户端向我服务端发请求,获取预支付ID信息,服务端这边在这里请求的是微信的统一下单的接口API
然后我的服务端会给客户端返回一个数组,供客户端请求调用微信的调起支付接口API
问题就出在这个数组,由于微信支付对大小写是非常敏感的,所以里面不符合接口定义参数的写法就容易导致错误,
下面的appid, timestamp都应该是小写才对
public function get_prepay_package($prepay_id) { $data = array(); //微信开放平台审核通过的应用APPID $data["appId"] = $this->_config["appid"]; //微信支付分配的商户号 $data["partnerid"] = $this->_config["mch_id"]; //预支付交易会话ID $data["prepayid"] = $prepay_id; //暂填写固定值Sign=WXPay $data["package"] = "WXPay"; //随机字符串,不长于32位 $data["noncestr"] = $this->get_nonce_string(); //时间戳 $data["timeStamp"] = time(); $data["sign"] = $this->sign($data); return $data; }
微信支付接口参数定义:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2