如果你正在使用微信公眾號開發,那么你一定會涉及到獲取jsapi_ticket這個參數,它是調用微信JS接口的必要參數之一。具體來說,jsapi_ticket是一個公眾號用于調用微信JS接口的臨時票據,有效期為7200秒,通過access_token獲取。獲取jsapi_ticket后,你就可以在頁面調用微信JS接口了,例如分享、上傳圖片等操作。
那么如何去獲取jsapi_ticket呢?首先我們需要獲取access_token,然后再向微信服務器發送請求去獲取jsapi_ticket。以下是獲取jsapi_ticket的代碼:
function getJsApiTicket(){ $.getJSON('ticket.php', function(data){ var jsapi_ticket = data.ticket; var nonceStr = 'Wm3WZYTPz0wzccnW'; var timestamp = Math.floor(new Date().getTime()/1000); var url = window.location.href; var signature = calcSignature(nonceStr, jsapi_ticket, timestamp, url); wx.config({ debug: false, appId: 'wxed74f7f8a67soo6o', timestamp: timestamp, nonceStr: nonceStr, signature: signature, jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'hideMenuItems', 'showMenuItems', 'hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem', 'translateVoice', 'startRecord', 'stopRecord', 'onVoiceRecordEnd', 'playVoice', 'onVoicePlayEnd', 'pauseVoice', 'stopVoice', 'uploadVoice', 'downloadVoice', 'chooseImage', 'previewImage', 'uploadImage', 'downloadImage', 'getNetworkType', 'openLocation', 'getLocation', 'hideOptionMenu', 'showOptionMenu', 'closeWindow', 'scanQRCode', 'chooseWXPay', 'openProductSpecificView', 'addCard', 'chooseCard', 'openCard' ] }); }); } function calcSignature(noncestr, jsapi_ticket, timestamp, url){ var string1 = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + noncestr + "×tamp=" + timestamp + "&url=" + url; var shaObj = new jsSHA(string1, 'TEXT'); var signature = shaObj.getHash('SHA-1', 'HEX'); return signature; }
這段代碼的重點在ticket.php這個文件,它是一個獲取jsapi_ticket的php文件。以下是ticket.php的代碼:
$jsapiInfo['ticket'])); } else{ echo json_encode(array('error'=>'獲取jsapi_ticket失敗!')); } function httpGet($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $output = curl_exec($ch); curl_close($ch); return $output; } ?>
上面的代碼會向微信服務器發送兩個請求,一個是獲取access_token,另一個是獲取jsapi_ticket。其中,ACCESS_TOKEN_URL是獲取access_token的URL,JSTICKET_URL是獲取jsapi_ticket的URL,你需要將YOUR_APPID和YOUR_SECRET改為你自己的AppID和AppSecret。如果請求成功,將會返回jsapi_ticket。
在實際使用過程中,你需要將獲取jsapi_ticket的代碼放在適當的位置,例如頁面加載時或者某個事件觸發時。當你成功獲取到jsapi_ticket之后,就可以正常調用微信JS接口了!