ECShop 微信分享 (3)


微信分享 一直报 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://  认证失败;


如果各位哪里不明白欢迎追问;


各位老爷,给点鼓励关注一下微信呗


猜你喜欢

转载自blog.csdn.net/Uniquelike/article/details/52449865