应用插件 版主:官方插件技术组
微信分享,PC能分享出去,移动端分享就是报错
类型:迅睿CMS 更新时间:2021-12-03 11:23:13
插件 微信系统 V5.40
应用作者 迅睿官方团队
发布时间 2017-07-06 16:26:06
更新时间 2024-01-18 16:40:41

微信分享,PC能分享出去,移动端分享就是报错。

{xunruicms_img_title}

把defug打开,显示

<script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

<?php \Phpcmf\Service::C()->init_file('weixin');$signPackage=\Phpcmf\Service::L('jssdk','weixin')->GetSignPackage();?>
<?php $imgUrl = $thumb ? dr_get_file($thumb,400,400) : SITE_URL.'logo.png'; ?>
<?php $title = $title; ?>

<script>
    wx.config({
        // debug: true,
        appId: '<?php echo $signPackage["appId"];?>',
        timestamp: <?php echo $signPackage["timestamp"];?>,
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
        signature: '<?php echo $signPackage["signature"];?>',
        jsApiList: ['onMenuShareTimeline', 'onMenuShareQQ', 'onMenuShareQZone', 'onMenuShareAppMessage','updateAppMessageShareData','updateTimelineShareData']
    });
    wx.ready(function () {
        // 在这里调用 API
         wx.updateAppMessageShareData({ 
     title: '{$title}', // 分享标题
            desc: '{$description}', // 分享描述
            link: '{dr_now_url()}', // 分享链接
            imgUrl: '{$imgUrl}', // 分享图标
    success: function () {
      // 设置成功
    }
  });


插件版权:官方插件
插件名称:微信系统

插件教程:https://www.xunruicms.com/doc/app-226.html

回帖
  • 官方插件技术-陈老师
    #1楼    官方插件技术-陈老师
    2021-10-06 15:01:46
    Chrome 0
    从数据上说它是权限不够,你去微信公众号平台把移动端的域名也添加进去白名单。
  • 严波
    #2楼    严波
    2021-10-06 15:03:41
    Chrome 0
    官方插件技术-陈老师 公众号IP白名单 我们加了IP ,现在还要加英文域名的意思吗?
  • 官方插件技术-陈老师
    #3楼    官方插件技术-陈老师
    2021-10-06 15:05:54
    Chrome 0
    对,子域名,主域名都要加白名单参考文档:《Jssdk类》
  • 严波
    #4楼    严波
    2021-10-06 15:07:37
    Chrome 0
    我们ip白名单 121.199.20.212也加上去了的
  • 严波
    #5楼    严波
    2021-10-06 15:08:37
    Chrome 0


  • 严波
    #6楼    严波
    2021-10-06 15:08:54
    Chrome 0
    安全域名啥的 JS域名也都加了的
  • 官方插件技术-陈老师
    #7楼    官方插件技术-陈老师
    2021-10-06 15:11:04
    Chrome 0


  • 严波
    #8楼    严波
    2021-10-06 15:15:28
    Chrome 0
    加了的哦。这个肯定都加的哈,最基本的JS分享
  • 严波
    #9楼    严波
    2021-10-06 15:16:31
    Chrome 0
    我们手机端和PC段是用一个域名
  • 严波
    #10楼    严波
    2021-10-06 15:22:37
    Chrome 0
    https://tc.xdmrz.com/index.php?s=zz&c=show&id=54
  • 官方插件技术-陈老师
    #11楼    官方插件技术-陈老师
    2021-10-06 15:23:15
    Chrome 0
    同一个域名肯定不会这种情况 了,分享是按域名来的,都一样了,说明权限也是一样了,等一天观察观察看看是不是微信那边的问题
  • 严波
    #12楼    严波
    2021-10-06 15:23:25
    Chrome 0
    官方插件技术-陈老师 陈老师 ,网址是https://tc.xdmrz.com/index.php?s=zz&c=show&id=54 这个你可以打开看下。
  • 官方插件技术-陈老师
    #13楼    官方插件技术-陈老师
    2021-10-06 15:26:44
    Chrome 0
    可以,我分享没有提示错误,手机分享
  • 严波
    #14楼    严波
    2021-10-06 16:17:18
    Chrome 0
    官方插件技术-陈老师 我把debug取消了的。分享出去没有显示摘要和缩略图。只有网址
    如果debug打开,页面是报错的状态 就是上图发的报错。
  • 设计部
    #15楼    设计部
    2021-10-06 16:25:53
    Chrome 0
    图片不显示可能是图片url是远程url,需要把图片url的域名加入白名单
  • 严波
    #16楼    严波
    2021-10-06 17:02:52
    Chrome 0
    感觉是签名函数的问题哈。
    https://tc.xdmrz.com/aa.php
    直接能输出 token
    /**
     *  通过URL获取页面信息
     * @param $url  地址
     * @return mixed  返回页面信息
     */
    function get_url($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);  //设置访问的url地址
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不输出内容
        $result =  curl_exec($ch);
        curl_close ($ch);
        return $result;
    }
    
    
    $file_contents = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=修改ID&secret=自己的秘钥';
    
     $res =get_url($file_contents);
    
    //  $res =httpRequest($url,$data);
        $json_array = json_decode($res,true);
        $data=$json_array['access_token'];
         
        echo $data;
    上面的APPID 我修改了的。
    满意答案
  • 严波
    #17楼    严波
    2021-10-06 17:25:23
    Chrome 0
    问题是,PC能分享,移动端不能分享哈。PC端 微信浏览器分享是正常的。移动端就是不行,主要是这个问题。
  • 官方插件技术-陈老师
    #18楼    官方插件技术-陈老师
    2021-10-06 17:36:16
    Chrome 0
    这个问题不太好排查,关键是你域名都一样,
  • 严波
    #19楼    严波
    2021-10-07 09:15:18
    Chrome 0
    官方插件技术-陈老师 是的。现在的问题就是 我pc分享正常,移动端微信分享不正常。要么你就两个不正常。所以 我感觉是移动端的签名是不是哪儿有问题。同一个域名下,移动端分享。
  • 官方插件技术-陈老师
    #20楼    官方插件技术-陈老师
    2021-10-07 09:18:35
    Chrome 0
    签名理论上应该不会有问题,程序没变,域名没变,理论上签名也就没变化。你可以尝试用用微信自带的demo程序试一试
  • 严波
    #21楼    严波
    2021-10-07 09:55:04
    Chrome 0
    官方插件技术-陈老师 会不会是因为我windows服务器的原因啊?然后代码里面有严格模式,
    现在发现的问题是,cache/temp/这个文件夹 没有access_token.php和jsapi_ticket.php这两个缓存文件的写入 会不会是这个原因??
  • 严波
    #22楼    严波
    2021-10-07 09:56:29
    Chrome 0
    <?php \Phpcmf\Service::C()->init_file('weixin');$signPackage=\Phpcmf\Service::L('jssdk','weixin')->GetSignPackage();?>
    这个写入出现的JS明面上的分享代码都正常
    wx.config({    
    // debug: ,    
    appId: 'wxacaea66d3f229416',    
    timestamp: 1633571764,    
    nonceStr: 'ZHJ03TjZ5PAM99zE',    
    signature: '9756099bc2f88400674212f90a6e850ec27b2594',
  • 严波
    #23楼    严波
    2021-10-07 10:12:39
    Chrome 0
    提示的是 php提示签名报错
  • 官方插件技术-陈老师
    #24楼    官方插件技术-陈老师
    2021-10-07 10:15:06
    Chrome 0
    可以对比下html模式下的值是否一样的
  • 严波
    #25楼    严波
    2021-10-07 10:28:04
    Chrome 0
    官方插件技术-陈老师

    https://tc.xdmrz.com/index.php?s=zz&c=show&id=27


    这个网站麻烦陈老师 你微信打开看看,报错是这些信息,是分享接口没有获取到哈,我把debug打开了

  • 严波
    #26楼    严波
    2021-10-07 10:28:44
    Chrome 0






  • 官方插件技术-陈老师
    #27楼    官方插件技术-陈老师
    2021-10-07 10:29:32
    Chrome 0
    老师也判断不出来原因了 😅
  • 严波
    #28楼    严波
    2021-10-07 10:45:16
    Chrome 0
    手机上会弹出{"errmsg":"config invalid signature"}这个百度了下 基本上都是说签名错误的问题 😄
  • 官方插件技术-陈老师
    #29楼    官方插件技术-陈老师
    2021-10-07 10:50:32
    Chrome 0
    理论上签名也不会有变化
  • 严波
    #30楼    严波
    2021-10-07 10:53:19
    Chrome 0
    找到了问题,官方JSSDK问题

    微信JS-SDK 分享朋友圈时报:signature 错误

    /dayrui/App/Weixin/Libraries/Jssdk.php103 104

    找到下面两行代码:

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);

    然后将true改为false原因:通过查询curl用法我们可以看到上面两行代码是配置curl是否使用ssl的带证书(https协议)访问,一般我们是没有安装证书的(http协议),所以将true改为false就好!
    一般来说 我们都是https的,它还搞个验证。

  • 严波
    #31楼    严波
    2021-10-07 11:00:37
    Chrome 0
    简单点 我感觉就是网站如果是泛域名ssl证书的话 ,二级站点分享都需要把这个改成false
  • 官方插件技术-陈老师
    #32楼    官方插件技术-陈老师
    2021-10-07 11:06:12
    Chrome 0
    收到,没有想到前缀问题,一般网站都是https模式,下次提醒一下用户https
  • 严波
    #33楼    严波
    2021-12-03 11:23:13
    Chrome 0
    @严波:这个修改下