一般出这个错误,解决办法是确保微信公众平台里的网页授权域名填写一致即可。
但是今天碰到另一个坑,就是官方的支付demo里的调用接口网址写的是http
就是WxPay.JsApiPay.php里的 GetOpenid函数里
public function GetOpenid()
{
//通过code获得openid
if (!isset($_GET['code'])){
//触发微信返回code码
$baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING']);
$url = $this->_CreateOauthUrlForCode($baseUrl);
Header("Location: $url");
exit();
} else {
//获取code码,以获取openid
$code = $_GET['code'];
$openid = $this->getOpenidFromMp($code);
return $openid;
}
}
如果您的网址域名配置了ssl证书,就是https访问,而且你在微信公众号里添加授权域名的时候也选择了强制https,那么坑就来了
就会提示redirect_uri域名(协议) 与后台配置不一致 10039,这时只要把上面函数里的http改成https即可。