18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 建站知识 > EasyWeChat JSSDK 之获取当前 url 深坑

EasyWeChat JSSDK 之获取当前 url 深坑

时间:2023-02-20 17:06:01 | 来源:建站知识

时间:2023-02-20 17:06:01 来源:建站知识

EasyWeChat JSSDK 之获取当前 url 深坑:我的用的3.x 版本,在获取 jssdk 的签名时总是出错,这个坑有点深啊...

找了很长时间,原因是我自己的测试域名配了 ssl 证书,如果通过文档所写的方式获取 JSSDK 的配置数据 ,示例如下:

Route::get('test',function (){ $app = new Application(config('wechat')); $js = $app->js; $configArr = $js->getConfigArray([ 'onMenuShareTimeline', 'onMenuShareAppMessage', 'hideAllNonBaseMenuItem', 'showMenuItems', "chooseWXPay" //微信支付 ],false); return $s;});在 微信开发者工具 中测试时一直会抛 签名验证失败的错误.我们看一下 easywechat 给我们生成的 JSSDK 配置数据:

我的域名明明是 https 的,但是 easywechat API 帮我们设置的当前 url 信息却是 http 的,问题就出现在这里.

解决办法:

在文档中有这个方法可以设置当前 URL

如果我们的域名是 https 的,那么就通过正则表达式将 http 替换成 https 「当然有其他的更好的解决这个问题的办法,也希望大家多多指点」,将我们的代码修改下:

Route::get('test',function (){ $app = new Application(config('wechat')); $js = $app->js; // 通过正则表达式将 http 替换成 https $url = $js->getUrl(); $url = preg_replace("/http(.*)://///","https://",$url); $js->setUrl($url); $configArr = $js->getConfigArray([ 'onMenuShareTimeline', 'onMenuShareAppMessage', 'hideAllNonBaseMenuItem', 'showMenuItems', "chooseWXPay" //微信支付 ],false); return $configArr;});继续看结果,这时 JSSDK 的配置信息便正确了.

不成文章,希望大家多多指点.

2018-7-5 21:44:17

关键词:获取

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭