iis服务器配置微信php,IIS+PHP下微信二次开发JS-SDK签名失败(已解决)

今天朋友丢个页面给我让配置下微信分享信息(标题,摘要,图片)。

二话不说,从微信开发文档里面把JS-SDK的下载下来,然后按开发文档说的那样做好配置。但是签名一直失败啊~~~~,我想很多新手跟我一样,也会遇到或多或少这样的问题,如果你遇到的问题跟我一样,那这篇文章一定对你有所帮助。

服务器环境

IIS6.0+PHP5.2.9 (ISAPI模式)

问题一:报错“Call to undelfined function curl_init() ”

解决方案:打开php.ini,找到;extension=php_curl.dll,把前面的;去掉重启服务器,开始我是在服务里面重启IIS server,但是重启了还是同样的报错,用命令行模式运行下curl_init()没报错,看来是没重启成功,继续去IIS里面进行下步操作:

4003092a136b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

QQ图片20160203133325.png

好啦,这下没有报错了,但是签名还是失败。

好吧~~~又去看jssdk.php函数:

private function httpGet($url) {

$curl = curl_init();

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_TIMEOUT, 500);

// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。

// 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);

curl_setopt($curl, CURLOPT_URL, $url);

$res = curl_exec($curl);

curl_close($curl);

return $res;

}

这里我想应该是CURLOPT_SSL的问题,可以试试把php.ini里面的extension=php_openssl.dll开启,这里我跳过了这部,直接修改了httpGet这个函数,改成下面这样子咯~

private function httpGet($url) {

$res = file_get_contents($url);

return $res;

}

到这里以为万事大吉了,可是刷新页面,继续出现如下错误

问题二:警告“iis php file_get_contents failed to open stream”

继续打开php.ini,保证下面2行是开启状态,重启ISAPI_筛选器

allow_url_fopen = On

allow_url_include = On

好啦,警告也没有啦,签名也成功!但是问题又来了

public function getSignPackage() {

$jsapiTicket = $this->getJsApiTicket();

// 注意 URL 一定要动态获取,不能 hardcode.

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";

$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

说明:

1.在apache+php下面,上面2个链接的$_SERVER[REQUEST_URI]分别对应"/index.php"和“/”

2.在IIS+php中两个链接的$_SERVER[REQUEST_URI]都是"/index.php",在IIS环境下只需要把

$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

改成

$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[HTTP_X_REWRITE_URL]";

因为微信浏览器打开的url必须跟签名sdk里面传入的url一致!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值