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

迅睿框架 更新 2021-12-03 11:23:13 严波

微信分享,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 () {
      // 设置成功
    }
  });


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

方案

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


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


  • 严波 #8 · 2021-10-06 15:15:28
    加了的哦。这个肯定都加的哈,最基本的JS分享
  • 严波 #9 · 2021-10-06 15:16:31
    我们手机端和PC段是用一个域名
  • 严波 #10 · 2021-10-06 15:22:37
  • 官方插件技术-陈老师 #11 · 2021-10-06 15:23:15
    同一个域名肯定不会这种情况 了,分享是按域名来的,都一样了,说明权限也是一样了,等一天观察观察看看是不是微信那边的问题
  • 严波 #12 · 2021-10-06 15:23:25
    官方插件技术-陈老师 陈老师 ,网址是https://tc.xdmrz.com/index.php?s=zz&c=show&id=54 这个你可以打开看下。
  • 官方插件技术-陈老师 #13 · 2021-10-06 15:26:44
    可以,我分享没有提示错误,手机分享
  • 严波 #14 · 2021-10-06 16:17:18
    官方插件技术-陈老师 我把debug取消了的。分享出去没有显示摘要和缩略图。只有网址
    如果debug打开,页面是报错的状态 就是上图发的报错。
  • 设计部 #15 · 2021-10-06 16:25:53
    图片不显示可能是图片url是远程url,需要把图片url的域名加入白名单
  • 严波 #16 · 2021-10-06 17:02:52
    满意答案
    感觉是签名函数的问题哈。
    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
    问题是,PC能分享,移动端不能分享哈。PC端 微信浏览器分享是正常的。移动端就是不行,主要是这个问题。
  • 官方插件技术-陈老师 #18 · 2021-10-06 17:36:16
    这个问题不太好排查,关键是你域名都一样,
  • 严波 #19 · 2021-10-07 09:15:18
    官方插件技术-陈老师 是的。现在的问题就是 我pc分享正常,移动端微信分享不正常。要么你就两个不正常。所以 我感觉是移动端的签名是不是哪儿有问题。同一个域名下,移动端分享。
  • 官方插件技术-陈老师 #20 · 2021-10-07 09:18:35
    签名理论上应该不会有问题,程序没变,域名没变,理论上签名也就没变化。你可以尝试用用微信自带的demo程序试一试
  • 严波 #21 · 2021-10-07 09:55:04
    官方插件技术-陈老师 会不会是因为我windows服务器的原因啊?然后代码里面有严格模式,
    现在发现的问题是,cache/temp/这个文件夹 没有access_token.php和jsapi_ticket.php这两个缓存文件的写入 会不会是这个原因??
  • 严波 #22 · 2021-10-07 09:56:29
    <?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
    提示的是 php提示签名报错
  • 官方插件技术-陈老师 #24 · 2021-10-07 10:15:06
    可以对比下html模式下的值是否一样的
  • 严波 #25 · 2021-10-07 10:28:04
    官方插件技术-陈老师

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


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

  • 严波 #26 · 2021-10-07 10:28:44






  • 官方插件技术-陈老师 #27 · 2021-10-07 10:29:32
    老师也判断不出来原因了 😅
  • 严波 #28 · 2021-10-07 10:45:16
    手机上会弹出{"errmsg":"config invalid signature"}这个百度了下 基本上都是说签名错误的问题 😄
  • 官方插件技术-陈老师 #29 · 2021-10-07 10:50:32
    理论上签名也不会有变化
  • 严波 #30 · 2021-10-07 10:53:19
    找到了问题,官方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
    简单点 我感觉就是网站如果是泛域名ssl证书的话 ,二级站点分享都需要把这个改成false
  • 官方插件技术-陈老师 #32 · 2021-10-07 11:06:12
    收到,没有想到前缀问题,一般网站都是https模式,下次提醒一下用户https
  • 严波 #33 · 2021-12-03 11:23:13
    @严波:这个修改下

迅睿系统漏洞

GeoSeo收录宝
GeoSeo收录宝(2026-09-01)
升级 ai智能发布功能 升级 支持8国语言后端设置和前端输出功能 ...
Word发布批量上传
Word发布批量上传(2026-08-31)
版本覆盖问题重发
多语言翻译Seolang
多语言翻译Seolang(2026-08-31)
新增 LLM 大模型对话翻译模块 配置层强类型化重构 URL 模...
自定义存储
自定义存储(2026-08-30)
同步服务器端通用版实现,统一管理端、CMS 端和浏览器直传的提示与错...
GeoSeo工具箱
GeoSeo工具箱(2026-08-29)
新增 bing推送 新增 IndexNow推送 新增 baidu...
外贸多语言建站
外贸多语言建站(2026-08-27)
新增阿里云专业版入口 新增阿里云自动识别字符格式
Querylist渐进式采集
Querylist渐进式采集(2026-08-26)
增加范围截取规则
实时任务
实时任务(2026-08-26)
补充并整理完整使用说明、历史版本更新日志,统一帮助页样式。