微信分享 一直报 configure:invalid signature 排除了3天,还是没找到哪里出问题了;认为是ECShop模块原因,排除了好多遍都没问题;
最后才发现是ECShop 获取参数有问题;
下面是解决办法分享给各位
1,ECShop 分享模块
路径:\mobile\themes\miqinew\library 目录下 js_sdk.lbi
找需要引用的 dwt 文件 加入 <!-- #BeginLibraryItem "/library/js_sdk.lbi" --><!-- #EndLibraryItem --> 引用完成;
2,ECShop 微信端 configure:invalid signature 错误
解决办法:
路径:\mobile\include\apps\default\controllers 目录下 CommonController.class.php 文件
函数:
public function wechatJsSdk(){
$config = model('Base')->model->table('wechat')->field('token, appid, appsecret, status')->find();
if ($config['status']) {
//微信店信息
$js_sdk_data['title'] = C('shop_name');
$js_sdk_data['desc'] = C('shop_desc');
$js_sdk_data['url'] = 'http://'.$_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI'];//拼接认证路径
$js_sdk_data['pic'] = 'http://'.$_SERVER['HTTP_HOST'] . '/images/flogo.jpg';
//商品信息
if(CONTROLLER_NAME == 'Goods' && isset($_GET['id'])){
$goods_id = I('id', 0);
$goods = model('Goods')->get_goods_info($goods_id);
$js_sdk_data['title'] = $goods['goods_name'];
$js_sdk_data['desc'] = $goods['goods_name'];
$js_sdk_data['pic'] = $goods['goods_thumb'];
}
//获取新闻信息
if(CONTROLLER_NAME == 'Article' && isset($_GET['aid'])){
$new_id = I('aid',74);
$info = model('Article')->get_article_info($new_id);
$js_sdk_data['title'] = $info['title'];
$js_sdk_data['desc'] = $info['description'];
}
$wechat = new Wechat($config);
$js_sdk_sign = $wechat->getJsSign($js_sdk_data['url']);//获取认证令牌
$this->assign('js_sdk_sign', $js_sdk_sign);
$this->assign('js_sdk_data', $js_sdk_data);
}
}
注意上面红色的地方, ECShop 原来的写法 __URL__ . $_SERVER['REQUEST_URI'];
ECShop 获取的路径有问题,没有 http://
所以在进行微信接口效验的时候就会出现 configure:invalid signature 错误
因为微信获取url的时候有 http:// 而ECShop 传参的时候 却没有 http:// 认证失败;
如果各位哪里不明白欢迎追问;
各位老爷,给点鼓励关注一下微信呗