zoukankan      html  css  js  c++  java
  • 微信分享

     最近项目用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,"?"));
  • 相关阅读:
    [saiku] 系统登录成功后查询Cubes
    216. Combination Sum III
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    211. Add and Search Word
    210. Course Schedule II
    分硬币问题
    开始学习Python
  • 原文地址:https://www.cnblogs.com/yanyanyanyanliu/p/11083400.html
Copyright © 2011-2022 走看看