微信開發總結之JSSDK

關鍵名詞解釋

  • 安全域名:

    用於JSSDK,開發者便可在該域名(包括二級域名)下調用微信開放的JS接口
  • access_token:

    · 普通access_token:JSSDK和微信公衆號後臺開發使用,獲取方法見官方文檔:
    http://mp.weixin.qq.com/wiki/15/54ce45d8d30b6bf6758f68d2e95bc627.html
    
    · 網頁受權access_token: 網頁受權獲取用戶基本信息(基於OAuth2.0實現),獲取方法見官方文檔:
    http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
    
    注意:若公衆號已使用第三方開發,access_token不能直接從微信獲取,應從第三方開發者中獲取,不然會形成衝突

調試工具

  • 接口測試號:

    獲取一個含有所有接口權限的測試公衆號
  • 微信web開發者工具:

    獲取地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140&token=&lang=zh_CN

具體方法

  • 常規步驟:

    • 綁定安全域名html

    • 服務器端生成驗證信息git

    • 客戶端使用config接口注入權限驗證配置github

    • 服務器生成驗證信息常規步驟web

      • 獲取普通access_tokenapi

      • 使用aceess_token獲取jsapi_ticket安全

      • 生成簽名服務器

參與簽名字段:noncestr(隨機字符串),jsapi_ticket,timestamp(時間戳),url(當前網頁的URL,不包含#及其後面部分)微信

  • 對全部待簽名參數按照字段名的ASCII 碼從小到大排序(字典序)後,使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串string1koa

  • 對string1進行sha1簽名,獲得signature工具

注意事項:

  • 簽名用的noncestr和timestamp必須與wx.config中的nonceStr和timestamp相同。

  • 簽名用的url必須是調用JS接口頁面的完整URL。

  • 出於安全考慮,開發者必須在服務器端實現簽名的邏輯。

以上爲服務器的步驟,根據以上內容實現了一個簡單的koa中間件,詳見https://github.com/die-welle/koa-weixin-jssdk

  • 客戶端使用config接口注入權限驗證配置

    待續

相關文章
相關標籤/搜索