<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      微信JS-SDK自定義分享接入的注意點

      微信文檔 ,https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html,

      在用微信自定義分享,遇到了幾個坑,記錄一下。

      注意點1:進入“公眾號設置”的“功能設置”里填寫“JS接口安全域名”。注意公眾號需要認證,否則可能提示使用接口 沒有權限;

      注意點2:access_token是公眾號的全局唯一接口調用憑據,有效時間2小時,注意緩存,不能每次都獲取新的,次數一天2000次,可以緩存,或者存入數據表,用時判斷當前時間和存入的時間差。實在超過,可在微信后臺 接口權限中清空次數,一個月只能清3次

      其中的jsapi_ticket也是,緩存或者存表。

      注意點3: 簽名的注意事項

       

       

       

       注意點4:簽名時的url, 在pc的微信中,url沒有拼接什么,而在手機的微信中,會在你當前頁面上自動拼接上朋友圈 from=timeline,微信群 from=groupmessage,好友分享 from=singlemessage,簽名時要注意,不要漏掉,可以在前臺ajax請求時,或者當前頁面的url,傳入后臺簽名。

      注意點5:

       

       

      在手機微信中這些接口確實已經廢棄,用了,就會提示不支持,而在pc微信中,還是用這些,不能用新的

      由于pc和手機使用的方法不同,在php中定義了兩套,用手機打開時訪問一套,pc打開時訪問一套,或者弄訪問地址完全不一樣的頁面,pc一個地址,手機一個地址

      下面是php中的定義,手機和pc雖然是同一個網址,但是真正訪問的還是兩套

      function is_mobile(){
          $user_agent = $_SERVER['HTTP_USER_AGENT'];
      
          $mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte");
          $is_mobile = false;
          foreach ($mobile_agents as $device) {//這里把值遍歷一遍,用于查找是否有上述字符串出現過
              if (stristr($user_agent, $device)) { //stristr 查找訪客端信息是否在上述數組中,不存在即為PC端。
                  $is_mobile = true;
                  break;
              }
          }
          return $is_mobile;
      }
      
      if(is_mobile()){ //跳轉至wap分組
          define('BIND_MODULE','Mobile');
      }else{
          define('BIND_MODULE','Home');
      }

       

      判斷access_token 過期,我這只是2000秒,遠遠不到7200秒(2小時),

      time字段設置為了默認值當前時間
        $access_time = M("dc_weixin")->order("id desc")->getField("time");
              $time = time() - strtotime($access_time);
              if($time>2000){
                  $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->app_id."&secret=".$this->app_secret;
                  $content = file_get_contents($url);
                  $result = json_decode($content);
                  $data['access_token'] = $result->access_token;
                  $weixin = M("dc_weixin")->data($data)->add();
              }
      

        //jsapi_ticket

        public function getJk(){
              $this->getToken();
              $access_token =  M("dc_weixin")->order("id desc")->getField("access_token");
      
              $jk_time = M("dc_jk")->order("id desc")->getField("time");
              $time = time() - strtotime($jk_time);
              if($time>2000){
                  $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$access_token."&type=jsapi";
                  $content = file_get_contents($url);
                  $result = json_decode($content);
                  $data['jk'] = $result->ticket;
                  $weixin = M("dc_jk")->data($data)->add();
              }
      
          }

       

       /*
           * 隨機字符串
           */
          function create_guid() {
              $charid = strtoupper(md5(uniqid(mt_rand(), true)));
              $hyphen = chr(45);// "-"
              $uuid =
                  substr($charid, 0, 8).$hyphen
                  .substr($charid, 8, 4).$hyphen
                  .substr($charid,12, 4).$hyphen;
              return str_replace("-","",$uuid);
          }

       

       //簽名   頁面里ajax訪問,簽名的方法

       public function dcsign_mob(){
      $html = $_SERVER['HTTP_REFERER']; $time = strtotime(date('Y-m-d H:i:s',time())); $nostr = $this->create_guid(); $jk= M("dc_jk")->order("id desc")->getField("jk"); $url = "jsapi_ticket=".$jk."&noncestr=".$nostr."&timestamp=".$time."&url=".$html; $signature = sha1($url); $data['html'] = $html; $data['time'] = $time; $data['nostr'] = $nostr; $data['signature'] = $signature; $this->ajaxReturn($data); //返回到html也中 }
       $.ajax({
                  url: "{:U('**/**')}",
                  type: "get",  
      //data:{} //這里沒有將頁面的url傳入簽名方法中, timeout: 20000, //超時時間設置,單位毫秒 success: function (data) { console.log(data); wx.config({ debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。 appId: '*****', // 必填,公眾號的唯一標識 timestamp: data.time, // 必填,生成簽名的時間戳 nonceStr: data.nostr, // 必填,生成簽名的隨機串 signature: data.signature,// 必填,簽名 jsApiList: [ 'checkJsApi', 'onMenuShareTimeline','onMenuShareAppMessage','updateAppMessageShareData','updateTimelineShareData'] // 必填,需要使用的JS接口列表 }); wx.ready(function() { wx.updateAppMessageShareData({ title: shareTitle, // 分享標題 desc: descContent, // 分享描述 link: lineLink, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致 imgUrl: imgUrl, // 分享圖標 success: function () { // 用戶確認分享后執行的回調函數 }, cancel: function () { // 用戶取消分享后執行的回調函數 } }); wx.updateTimelineShareData({ title: shareTitle, // 分享標題 desc: descContent, // 分享描述 link: lineLink, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致 imgUrl: imgUrl, // 分享圖標 success: function () { // 用戶確認分享后執行的回調函數 }, cancel: function () { // 用戶取消分享后執行的回調函數 } }); }); }, error: function (xhr, textStatus, errorThrown) { /*錯誤信息處理*/ alert("進入error---"); alert("狀態碼:"+xhr.status); alert("狀態:"+xhr.readyState);//當前狀態,0-未初始化,1-正在載入,2-已經載入,3-數據進行交互,4-完成。 alert("錯誤信息:"+xhr.statusText ); alert("返回響應信息:"+xhr.responseText );//這里是詳細的信息 alert("請求狀態:"+textStatus); alert(errorThrown); alert("請求失敗"); }, complete: function (XMLHttpRequest, status) { if (status == 'timeout') { layer.msg("請求超時,請稍后再試!"); layer.close(index); } } });

       

       

       

      posted @ 2019-12-04 14:48  頭一回  閱讀(794)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩av一区二区三区在线| 激情国产一区二区三区四区| 武鸣县| 国内少妇偷人精品免费| 一区二区三区四区亚洲自拍| 国产JJIZZ女人多水喷水| 又湿又紧又大又爽a视频| 在线国产你懂的| 无极县| 日本深夜福利在线观看| 波多野结衣的av一区二区三区| 日韩av中文字幕有码| 精品国产肉丝袜在线拍国语| 野外做受三级视频| 国产高清精品在线一区二区| 亚洲日韩中文字幕在线播放| 国产成人免费| 国产成人精品午夜福利在线观看| 国产一级区二级区三级区| 久青草视频在线免费观看| 亚洲伊人五月丁香激情| 玉溪市| 少妇真人直播免费视频| 人妻少妇精品性色av蜜桃| 国产精品大片中文字幕| 国产欧美另类久久久精品不卡| 亚洲AⅤ天堂AV天堂无码| 日本边添边摸边做边爱| 国产精品色内内在线播放| 亚洲av综合色一区二区| 亚洲一卡2卡三卡四卡精品| 亚洲av本道一区二区| 精品国产中文字幕在线| 国产国亚洲洲人成人人专区| 中文字幕在线精品人妻| 国产精品国产三级国快看| 亚洲中文字幕av不卡无码| 婷婷丁香五月深爱憿情网| 欧美激烈精交gif动态图| 久久久av波多野一区二区| 亚洲精品国产精品国在线|