讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 14.1.2 JS-SDK簽名 >

14.1.2 JS-SDK簽名

簽名生成規則為,參與簽名的字段包括noncestr(隨機字符串)、有效的jsapi_ticket、timestamp(時間戳)、url(當前網頁的URL,不包含#及其後面的部分)。對所有待簽名參數按照字段名的ASCII碼從小到大排序(字典序)後,使用URL鍵值對的格式(即key1=value1&key2=value2……)拼接成字符串string1。這裡需要注意的是,所有參數名均為小寫字符。對string1進行sha1加密,字段名和字段值都採用原始值,不進行URL轉義。

以下述數據為例講解如下。


noncestr=Wm3WZYTPz0wzccnW
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
timestamp=1414587457
url=http:// mp.weixin.qq.com?params=value
  

步驟1:對所有待簽名參數按照字段名的ASCII碼從小到大排序(字典序)後,使用URL鍵值對的格式拼接成字符串string1。


jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW&timestamp=1414587457&url=http:// mp.weixin.qq.com?params=value
  

步驟2:對string1進行sha1簽名,得到signature。


0f9de62fce790f9a083d5c99e95740ceb90c27ed