首要条件

1、微信公众号已成功认证(任意服务号可添加安全域名和ip白名单即可)

2、微信公众号中添加JS安全域名

设置>公众号设置>功能设置>JS安全域名

3、添加IP白名单(服务器公网IP)

开发>基本配置>公众号开发信息>IP白名单

控制器

vendor('wechat.jssdk');
$jssdk =new \JSSDK("appid", "appsecret");
$signPackage = $jssdk->GetSignPackage();
$this->assign('signPackage',$signPackage);

页面

<script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript">
  wx.config({
    debug: false,//是否开启调试
    appId: '<?php echo $signPackage["appId"];?>',
    timestamp: <?php echo $signPackage["timestamp"];?>,
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
    signature: '<?php echo $signPackage["signature"];?>',
    jsApiList: [
      // 所有要调用的 API 都要加到这个列表中
      'checkJsApi',
      'onMenuShareTimeline', //
      'onMenuShareAppMessage',
      'onMenuShareQQ',
      'onMenuShareWeibo'
    ]
  });
  window.share_config = {
    "share": {
      "imgUrl": "https://blog.alonesky.com/storage/cover/2019/03/02/mgdyQB58XEwlN8hioz2IInwR5rgYASCiLsHGGyKD.png", //分享图,默认当相对路径处理,所以使用绝对路径的的话,“http://”协议前缀必须在。
      "desc": "你对页面的描述", //摘要,如果分享到朋友圈的话,不显示摘要。
      "title": '分享卡片的标题', //分享卡片标题
      "link": window.location.href, //分享出去后的链接,这里可以将链接设置为另一个页面。
      "success": function() { //分享成功后的回调函数
      },
      'cancel': function() {
        // 用户取消分享后执行的回调函数
      }
    }
  };
  wx.ready(function() {
    wx.onMenuShareAppMessage(share_config.share); //分享给好友
    wx.onMenuShareTimeline(share_config.share); //分享到朋友圈
    wx.onMenuShareQQ(share_config.share); //分享给手机QQ
  });
</script>

附件地址:链接