wx.config({ debug: true, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。 appId: '', // 必填,公衆號的惟一標識 timestamp: , // 必填,生成簽名的時間戳 nonceStr: '', // 必填,生成簽名的隨機串 signature: '',// 必填,簽名,見附錄1 jsApiList: [] // 必填,須要使用的JS接口列表,全部JS接口列表見附錄2 });
開啓調試模式:(true|false);javascript
公衆號的惟一標識,這個參數是固定數值html
當前時間參數,也可使其餘時間參數(爲安全起見不要hardcode)java
生成一個隨機字符串,具體長度我司是定的16位api
private function createNonceStr($length = 16) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; }
$signature = sha1("jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url");
簽名是由jsapi_ticket、noncestr(隨機字符串)、timestamp(隨機時間串)、url 四部分經過「&」鏈接並進行SHA-1編碼後所得緩存
生成簽名以前必須先了解一下jsapi_ticket,jsapi_ticket是公衆號用於調用微信JS接口的臨時票據。正常狀況下,jsapi_ticket的有效期爲7200秒,經過access_token來獲取。因爲獲取jsapi_ticket的api調用次數很是有限,頻繁刷新jsapi_ticket會致使api調用受限,影響自身業務,開發者必須在本身的服務全局緩存jsapi_ticket 。安全
(解讀:jsapi_ticket是一個臨時調用js接口的憑證,每過7200秒會自動失效,並且這個jsapi_ticket的調用次數是有限制的,若是很差好利用這7200秒的緩存的話,就會過快的調用完這個次數限制,從而影響項目業務。因此咱們須要將jsapi_ticket進行一個緩存,並加上建立日期,判斷這個時間是否超出7200秒的限制。一旦超出就從新獲取,否者調用緩存的憑據)微信