簽名生成規則為,參與簽名的字段包括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×tamp=1414587457&url=http:// mp.weixin.qq.com?params=value
步驟2:對string1進行sha1簽名,得到signature。
0f9de62fce790f9a083d5c99e95740ceb90c27ed