微信支付报错:统一下单和拉起支付的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