这个自定义说的是只能自定义分享内容,标题,链接等。

<?php
class share
{ 
      private $appId; 
      private $appSecret; 
      public function __construct($appId, $appSecret) 
      { 
            $this->appId = $appId; 
            $this->appSecret = $appSecret; 
      } 
      
      public function ec()
      {
          $res = $this->getAccessToken();//token
          
          $ticket = $this->getTicket($res);//ticket
          
          $rand = $this->createNonceStr();//随机字符
          
          $time = time();//时间戳
          
          $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; 
          $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; //要分享页面的url
          
          $arr=array();
          
          $arr['ticket'] = $ticket;
          
          $arr['rand'] = $rand;
          
          $arr['time'] = $time;
          
          $arr['url'] = $url;
          
          $string = "jsapi_ticket={$arr['ticket']}&noncestr={$arr['rand']}&timestamp={$arr['time']}&url={$arr['url']}"; //签名排序
         
          $signature = sha1($string); 
          
          $arr['signature'] = $signature;
          
          return $arr;
      } 
      
      //随机字符串
      private function createNonceStr($length = 16) 
      { 
      
            $chars = "abcdefghijklmnopqrstuvwxyz"; 
            
            $str = ""; 
            
            for ($i = 0; $i < $length; $i++) 
            { 
        
                $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); 
                
            } 
            
            return $str; 
            
      } 
      
      //获取 token 7200
      private function getAccessToken() 
      { 
      
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret"; 
                             
            $data = $this->get_file('token.txt');
            
            if(strlen($data)>1)//文件存在
            {
                
                $tokenArr = unserialize($data);
                
                if(time()<$tokenArr['expire'])
                {
                    
                    goto a;
                    
                }
                else
                {
                    
                    $tokenArr = json_decode($this->httpGet($url),true);
                    
                    $tokenArr['expire'] = time()+7000;
                    
                    $this->set_file('token.txt',serialize($tokenArr));
                    
                }
            }
            else    //文件不存在
            {
                    $tokenArr = json_decode($this->httpGet($url),true);
                    
                    $tokenArr['expire'] = time()+7000;
                    
                    $this->set_file('token.txt',serialize($tokenArr));
                    
            }
            
            a:
            return $tokenArr['access_token'];
      } 
      
     
            
                                                 
      //获取jsapi_ticket 7200
      private function getTicket($res)
      {
                
            $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$res."&type=jsapi"; 
                             
            $data = $this->get_file('ticket.txt');
                 
            if(strlen($data)>1)
            {
                
                $ticketArr = unserialize($data);
                
                if(time() < $ticketArr['expire'])
                {
                    
                    goto a;
                    
                }
                else
                {
                    
                    $ticketArr = json_decode($this->httpGet($url),true);
                    
                    $ticketArr['expire'] = time()+7000;
                    
                    $this->set_file('ticket.txt',serialize($ticketArr));
                    
                }
            }
            else
            {
                
                    $ticketArr = json_decode($this->httpGet($url),true);
                    
                    $ticketArr['expire'] = time()+7000;
                    
                    $this->set_file('ticket.txt',serialize($ticketArr));
                    
            }
            
          a:
            
          return $ticketArr['ticket'];
      }
     
      private function httpGet($url) 
      { 
      
            $curl = curl_init(); 
            
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
            
            curl_setopt($curl, CURLOPT_TIMEOUT, 500); 
            
            // 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。 
            // 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。 
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
            
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
            
            curl_setopt($curl, CURLOPT_URL, $url); 
         
            $res = curl_exec($curl); 
            
            curl_close($curl); 
         
            return $res; 
            
      } 
      
      private function get_file($filename)
      { 
      
            return trim(file_get_contents($filename)); 
            
      } 
      
      private function set_file($filename, $content) 
      { 
      
            $fp = fopen($filename,"w"); 
            fwrite($fp,$content); 
            fclose($fp); 
            
      } 
}

html页面

<?php 
$appid = 'xxxxxxxxxxxxx'; 
$APPSECRET = 'xxxxxxxxxxxxx'; 
$jssdk = new share($appid, $APPSECRET); 
$signPackage = $jssdk->ec();

?> 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
        <meta charset="UTF-8"> 
    </head> 
    <body> 
 
    </body> 
    <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> 
    <script>
        //alert(location.href.split('#')[0])    
        /* 
         *Android 自定义分享接口需升级至 6.0.2.58 版本及以上。 
         * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 
         * 
         * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈: 
         * 邮箱地址:weixin-open@qq.com 
         * 邮件主题:【微信JS-SDK反馈】具体问题 
         * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。 
         */ 

    wx.config({ 
            debug: true, 
            appId: '<?php echo $appid; ?>', 
            timestamp: <?php echo $signPackage["time"]; ?>, 
            nonceStr: '<?php echo $signPackage["rand"]; ?>', 
            signature: '<?php echo $signPackage["signature"]; ?>', 
            jsApiList: [
                'checkJsApi',
                'onMenuShareTimeline',
                'onMenuShareAppMessage',
                'onMenuShareQQ',
                'onMenuShareWeibo',
                'hideMenuItems',
                'showMenuItems',
                'hideAllNonBaseMenuItem',
                'showAllNonBaseMenuItem',
                'translateVoice',
                'startRecord',
                'stopRecord',
                'onRecordEnd',
                'playVoice',
                'pauseVoice',
                'stopVoice',
                'uploadVoice',
                'downloadVoice',
                'chooseImage',
                'previewImage',
                'uploadImage',
                'downloadImage',
                'getNetworkType',
                'openLocation',
                'getLocation',
                'hideOptionMenu',
                'showOptionMenu',
                'closeWindow',
                'scanQRCode',
                'chooseWXPay',
                'openProductSpecificView',
                'addCard',
                'chooseCard',
                'openCard'
            ] 
        }); 
        
          wx.ready(function () 
          {
                
                wx.onMenuShareTimeline({
                title: 'xxxxxxxxxxx', // 分享标题
                link: 'xxxxxxxxxxxxx', 
                imgUrl: 'http://www.lanrenmb.com/templets/lanrenmb/img/logo.png', // 分享图标
                success: function () { 
                    // 用户确认分享后执行的回调函数
                },
                cancel: function () { 
                    // 用户取消分享后执行的回调函数
                }
                });
                /*  var shareData = {
                  title: '标题',
                  desc: '描述',
                  link: 'xxxxxxxxxx',//链接
                  imgUrl: 'xxxxxxxxxxxx'//图片地址
                  };
                  wx.onMenuShareAppMessage(shareData);
                  wx.onMenuShareTimeline(shareData);
                  wx.onMenuShareQQ(shareData);
                  wx.onMenuShareWeibo(shareData);*/
          });
        
          wx.error(function (res) 
          {
                  console.log(res.errMsg);
          });
    </script> 
</html>

大概就是这样了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容