微信JSSDK配置文件說明
1.官方配置
wx.config({
debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
appId: '', // 必填,公眾號的唯一標識
timestamp: , // 必填,生成簽名的時間戳
nonceStr: '', // 必填,生成簽名的隨機串
signature: '',// 必填,簽名,見附錄1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
});
2.屬相解讀
2.1 debug
開啟調試模式:(true|false);
2.2 appId
公眾號的唯一標識,這個參數是固定數值
2.3 timestamp
當前時間參數,也可以使其他時間參數(為安全起見不要hardcode)
2.4 nonceStr
生成一個隨機字符串,具體長度我司是定的16位
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;
}
2.5 signature
$signature = sha1("jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url");
簽名是由jsapi_ticket、noncestr(隨機字符串)、timestamp(隨機時間串)、url 四部分通過“&”連接並進行SHA-1編碼后所得
2.5.1 jsapi_ticket
生成簽名之前必須先了解一下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秒的限制。一旦超出就重新獲取,否者調用緩存的憑據)
- 參考以下文檔獲取access_token(有效期7200秒,開發者必須在自己的服務全局緩存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html
- 用第一步拿到的access_token 采用http GET方式請求獲得jsapi_ticket(有效期7200秒,開發者必須在自己的服務全局緩存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
