您的位置:首页 > 移动开发 > 微信开发

php 引入微信的js-sdk 报签名不合法的解决方案

2017-05-16 07:29 423 查看
1 首先 我下载了 http://demo.open.weixin.qq.com/jssdk/sample.zip的集成包. 发现在做demo的时候 把 该有的配置参数都传过去了 但总报签名不合法.

2 检查发现没有access_token竟然也能成签名 , 我也是醉了

3 在jssdk.php 中发现 httpGet 没起作用

4 重写curl 代码如下:

public function _requestGet($url, $ssl=true) {
// curl完成
$curl = curl_init();

//设置curl选项
curl_setopt($curl, CURLOPT_URL, $url);//URL
$user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 FirePHP/0.7.4';
curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);//user_agent,请求代理信息
curl_setopt($curl, CURLOPT_AUTOREFERER, true);//referer头,请求来源
//SSL相关
if ($ssl) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//禁用后cURL将终止从服务端进行验证
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//检查服务器SSL证书中是否存在一个公用名(common name)。
}
curl_setopt($curl, CURLOPT_HEADER, false);//是否处理响应头
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//curl_exec()是否返回响应结果

// 发出请求
$response = curl_exec($curl);
if (false === $response) {
echo '<br>', curl_error($curl), '<br>';
return false;
}
return $response;
}


5 把2处的httpGet 换成 _requestGet

6 成功 config:ok!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信