• 微信分享


     最近项目用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,"?"));
  • 相关阅读:
    hdfs fsck命令查看HDFS文件对应的文件块信息(Block)和位置信息(Locations)
    更高的压缩比,更好的性能–使用ORC文件格式优化Hive
    InfluxDB基本概念和操作
    InfluxDB部署
    Zookeeper运维小结--CancelledKeyException
    Zookeeper源码编译为Eclipse工程(win7下Ant编译)
    ZooKeeper Observers解决节点过多时写性能下降问题
    ZooKeeper日志与快照文件简单分析
    ZooKeeper Administrator's Guide A Guide to Deployment and Administration(吃别人嚼过的馍没意思,直接看官网资料)
    ZOOKEEPER解惑
  • 原文地址:https://www.cnblogs.com/yanyanyanyanliu/p/11083400.html
Copyright © 2020-2023  润新知