码迷,mamicode.com
首页 > 微信 > 详细

微信分享

时间:2019-06-25 16:39:07      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:mes   链接   项目   回调函数   整理   data   style   echo   bin   

 最近项目用tp3写的  整理了下一下微信分享,直接上代码。

var  url = "{:U(‘Index/share‘)}",articleTitle = "{$Activity.rules}",articlePic= "{$Activity.pay_img}",articleBrief=" {$Activity.title}";
//调用方法
share(url,articleTitle,articlePic,articleBrief);

/**
* 分享
*/
  function share(url,articleTitle,articlePic,articleBrief) {
         var url1 =location.href.split(‘#‘)[0];
           $.ajax({
                   url: url,
                   async: false,
                   data: { "url": url1 },
                   dataType: ‘text‘,
                    success: function(data) {
                        var data1 = eval("(" + data + ")");
                        var timestamp = data1.timestamp;
                        var nonceStr = data1.noncestr;
                        var signature = data1.signature;
                        wx.config({
                             debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                             appId: "wx9903dba5a4b35192", // 必填,公众号的唯一标识
                             timestamp: timestamp, // 必填,生成签名的时间戳
                             nonceStr: nonceStr, // 必填,生成签名的随机串
                             signature: signature,// 必填,签名
                             jsApiList: [‘onMenuShareAppMessage‘,‘onMenuShareTimeline‘] // 必填,需要使用的JS接口列表
                            });
                        wx.ready(function(){
                             wx.onMenuShareAppMessage({
                              title: articleTitle, // 分享标题
                              desc: articleBrief, // 分享描述
                              link: data1.url, // 分享链接
                              imgUrl: articlePic, // 分享图标
                              type: ‘‘, // 分享类型,music、video或link,不填默认为link
                              dataUrl: ‘‘, // 如果type是music或video,则要提供数据链接,默认为空
                              success: function () { 
                               $(‘body‘).append(‘<div class="error-msg">分享成功!</div>‘);
                               setTimeout(function () {
                                  $(‘body‘).find(‘.error-msg‘).remove();
                                }, 1500);
                              },
                              cancel: function () { 
                                 $(‘body‘).append(‘<div class="error-msg">分享失败!</div>‘);
                                   setTimeout(function () {
                                      $(‘body‘).find(‘.error-msg‘).remove();
                                    }, 1500);
                              }
                             });
                             wx.onMenuShareTimeline({
                              title: articleTitle, // 分享标题
                              link: data1.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                              imgUrl: articlePic, // 分享图标
                              success: function () {
                               // 用户确认分享后执行的回调函数
                               $(‘body‘).append(‘<div class="error-msg">分享成功!</div>‘);
                               setTimeout(function () {
                                  $(‘body‘).find(‘.error-msg‘).remove();
                                }, 1500);
                              },
                              cancel: function () {
                               // 用户取消分享后执行的回调函数
                               $(‘body‘).append(‘<div class="error-msg">分享失败!</div>‘);
                                   setTimeout(function () {
                                      $(‘body‘).find(‘.error-msg‘).remove();
                                    }, 1500);
                              }
                             });
                            });
                   }

             });
    }
/**
 * 分享
 */
    public function share()
    {   
        $time = time();
        $str = ‘QWERTYUIOPASDFGHJKLZXVBNMqwertyuioplkjhgfdsamnbvcxz‘;
        for ($i=0;$i<32;$i++){
            $result .= $str[rand(0,48)];
        }   
        
        $wxconfig[‘appid‘] = $this->appid;
        $wxconfig[‘noncestr‘] = $result;
        $wxconfig[‘timestamp‘] = "$time";
        $jsapi_ticket =   S(‘jsapi_ticket‘.session(‘shopid‘));
        if(empty($jsapi_ticket)){
             $res = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecret);// 获得token
                $ress = json_decode($res,True);

                $token = $ress[‘access_token‘];// 取出 至于存储代码就不列举了 
                $js = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi");
                $jss = json_decode($js,True);
                 S(‘jsapi_ticket‘.session(‘shopid‘),$jss[‘ticket‘],7000);
                $jsapi_ticket = $jss[‘ticket‘];// 取出JS凭证, 至于存储代码就不列举了
        }
        
        $dataa[‘noncestr‘] = $wxconfig[‘noncestr‘];
        $dataa[‘jsapi_ticket‘] = $jsapi_ticket;
        $dataa[‘timestamp‘] = $wxconfig[‘timestamp‘];
        $dataa[‘url‘] = I(‘get.url‘);
        ksort($dataa);
        $signature = ‘‘;
        foreach($dataa as $k => $v){
            $signature .= $k.‘=‘.$v.‘&‘;
        }
        $signature = substr($signature, 0, strlen($signature)-1); 
        $wxconfig[‘signature‘] = sha1($signature);
        $wxconfig[‘url‘] = $dataa[‘url‘];

        echo json_encode($wxconfig);die;
        
    }
//我这边有点问题,需要过滤下链接,我用php来简单处理了下
$str = $_SERVER[‘HTTP_HOST‘].$_SERVER[‘REQUEST_URI‘];
        $tourl =  substr($str,0,strrpos($str,"?"));

 

微信分享

标签:mes   链接   项目   回调函数   整理   data   style   echo   bin   

原文地址:https://www.cnblogs.com/yanyanyanyanliu/p/11083400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!