微信公众号的js-sdk鉴权详解,微信公众号开发
生活随笔
收集整理的這篇文章主要介紹了
微信公众号的js-sdk鉴权详解,微信公众号开发
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不知道各位做微信公眾號開發的小伙伴認為最難的地方在哪,我個人認為就是js-sdk鑒權這一部分,當初找了好長時間終于看懂了
先看流程圖(圖片如有侵權請聯系我)
在看代碼及流程?
微信 -> 微信網頁開發 -> js-sdk鑒權說明文檔index.html -> 引入JS-SDK (jsweixin.js) -> wx.config() -> wx.ready (使用JS-SDK) 配置文件 準備-> {wx.chooseImagewx.getLocationwx.share}使用微信的功能wx.configg {appldtimetamp 時間戳nonceStr 隨機字符串 signature 簽名jsApiList } 上面通過新浪node服務拿到 <- signature <- { jsapi_ticket timetamp nonceStr url(攜帶的config.js) }jsapi_ticket <- access_token <- 微信服務器JSSDK使用步驟步驟一:綁定域名 先登錄微信公眾平臺進入“公眾號設置”的“功能設置”里填寫“JS接口安全域名”。備注:登錄后可在“開發者中心”查看對應的接口權限。步驟二:引入 JS 文件 在需要調用 JS 接口的頁面引入如下 JS 文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js如需進一步提升服務穩定性,當上述資源不可訪問時,可改訪問:http://res2.wx.qq.com/open/js/jweixin-1.6.0.js (支持https)。備注:支持使用 AMD/CMD 標準模塊加載方法加載步驟三:通過 config 接口注入權限驗證配置 所有需要使用 JS-SDK 的頁面必須先注入配置信息,否則將無法調用(同一個 url 僅需調用一次,對于變化 url 的SPA的web app可在每次 url 變化時進行調用,目前 Android 微信客戶端不支持 pushState 的H5新特性,所以使用 pushState 來實現web app的頁面會導致簽名失敗,此問題會在Android6.2中修復)。wx.config({debug: true, // 開啟調試模式,調用的所有 api 的返回值會在客戶端 alert 出來,若要查看傳入的參數,可以在 pc 端打開,參數信息會通過 log 打出,僅在 pc 端時才會打印。appId: '', // 必填,公眾號的唯一標識timestamp: , // 必填,生成簽名的時間戳nonceStr: '', // 必填,生成簽名的隨機串signature: '',// 必填,簽名jsApiList: [] // 必填,需要使用的 JS 接口列表 }); 簽名算法見文末的附錄1,所有 JS 接口列表見文末的附錄2注意:如果使用的是小程序云開發靜態網站托管的域名的網頁,可以免鑒權直接跳任意合法合規小程序,調用 wx.config 時 appId 需填入非個人主體的已認證小程序,不需計算簽名,timestamp、nonceStr、signature 填入非空任意值即可。步驟四:通過 ready 接口處理成功驗證 wx.ready(function(){// config信息驗證后會執行 ready 方法,所有接口調用都必須在 config 接口獲得結果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在 ready 函數中調用來確保正確執行。對于用戶觸發時才調用的接口,則可以直接調用,不需要放在 ready 函數中。 });步驟五:通過 error 接口處理失敗驗證 wx.error(function(res){// config信息驗證失敗會執行 error 函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開 config 的debug模式查看,也可以在返回的 res 參數中查看,對于 SPA 可以在這里更新簽名。 });在下面是報錯排查微信官網有
# 全局返回碼-1 系統繁忙,此時請開發者稍候再試 0 請求成功 40001 獲取 access_token 時 AppSecret 錯誤,或者 access_token 無效。請開發者認真比對 AppSecret 的正確性,或查看是否正在為恰當的公眾號調用接口 40002 不合法的憑證類型 40003 不合法的 OpenID ,請開發者確認 OpenID (該用戶)是否已關注公眾號,或是否是其他公眾號的 OpenID 40004 不合法的媒體文件類型 40005 不合法的文件類型 40006 不合法的文件大小 40007 不合法的媒體文件 id 40008 不合法的消息類型 40009 不合法的圖片文件大小 40010 不合法的語音文件大小 40011 不合法的視頻文件大小 40012 不合法的縮略圖文件大小 40013 不合法的 AppID ,請開發者檢查 AppID 的正確性,避免異常字符,注意大小寫 40014 不合法的 access_token ,請開發者認真比對 access_token 的有效性(如是否過期),或查看是否正在為恰當的公眾號調用接口 40015 不合法的菜單類型 40016 不合法的按鈕個數 40017 不合法的按鈕類型 40018 不合法的按鈕名字長度 40019 不合法的按鈕 KEY 長度 40020 不合法的按鈕 URL 長度 40021 不合法的菜單版本號 40022 不合法的子菜單級數 40023 不合法的子菜單按鈕個數 40024 不合法的子菜單按鈕類型 40025 不合法的子菜單按鈕名字長度 40026 不合法的子菜單按鈕 KEY 長度 40027 不合法的子菜單按鈕 URL 長度 40028 不合法的自定義菜單使用用戶 40029 無效的 oauth_code 40030 不合法的 refresh_token 40031 不合法的 openid 列表 40032 不合法的 openid 列表長度 40033 不合法的請求字符,不能包含 \uxxxx 格式的字符 40035 不合法的參數 40038 不合法的請求格式 40039 不合法的 URL 長度 40048 無效的url 40050 不合法的分組 id 40051 分組名字不合法 40060 刪除單篇圖文時,指定的 article_idx 不合法 40117 分組名字不合法 40118 media_id 大小不合法 40119 button 類型錯誤 40120 子 button 類型錯誤 40121 不合法的 media_id 類型 40125 無效的appsecret 40132 微信號不合法 40137 不支持的圖片格式 40155 請勿添加其他公眾號的主頁鏈接 40163 oauth_code已使用 41001 缺少 access_token 參數 41002 缺少 appid 參數 41003 缺少 refresh_token 參數 41004 缺少 secret 參數 41005 缺少多媒體文件數據 41006 缺少 media_id 參數 41007 缺少子菜單數據 41008 缺少 oauth code 41009 缺少 openid 42001 access_token 超時,請檢查 access_token 的有效期,請參考基礎支持 - 獲取 access_token 中,對 access_token 的詳細機制說明 42002 refresh_token 超時 42003 oauth_code 超時 42007 用戶修改微信密碼, accesstoken 和 refreshtoken 失效,需要重新授權 42010 相同 media_id 群發過快,請重試 43001 需要 GET 請求 43002 需要 POST 請求 43003 需要 HTTPS 請求 43004 需要接收者關注 43005 需要好友關系 43019 需要將接收者從黑名單中移除 44001 多媒體文件為空 44002 POST 的數據包為空 44003 圖文消息內容為空 44004 文本消息內容為空 45001 多媒體文件大小超過限制 45002 消息內容超過限制 45003 標題字段超過限制 45004 描述字段超過限制 45005 鏈接字段超過限制 45006 圖片鏈接字段超過限制 45007 語音播放時間超過限制 45008 圖文消息超過限制 45009 接口調用超過限制 45010 創建菜單個數超過限制 45011 API 調用太頻繁,請稍候再試 45015 回復時間超過限制 45016 系統分組,不允許修改 45017 分組名字過長 45018 分組數量超過上限 45047 客服接口下行條數超過上限 45064 創建菜單包含未關聯的小程序 45065 相同 clientmsgid 已存在群發記錄,返回數據中帶有已存在的群發任務的 msgid 45066 相同 clientmsgid 重試速度過快,請間隔1分鐘重試 45067 clientmsgid 長度超過限制 46001 不存在媒體數據 46002 不存在的菜單版本 46003 不存在的菜單數據 46004 不存在的用戶 47001 解析 JSON/XML 內容錯誤 48001 api 功能未授權,請確認公眾號已獲得該接口,可以在公眾平臺官網 - 開發者中心頁中查看接口權限 48002 粉絲拒收消息(粉絲在公眾號選項中,關閉了 “ 接收消息 ” ) 48004 api 接口被封禁,請登錄 mp.weixin.qq.com 查看詳情 48005 api 禁止刪除被自動回復和自定義菜單引用的素材 48006 api 禁止清零調用次數,因為清零次數達到上限 48008 沒有該類型消息的發送權限 50001 用戶未授權該 api 50002 用戶受限,可能是違規后接口被封禁 50005 用戶未關注公眾號 53500 發布功能被封禁 53501 頻繁請求發布 53502 Publish ID 無效 53600 Article ID 無效 61451 參數錯誤 (invalid parameter) 61452 無效客服賬號 (invalid kf_account) 61453 客服帳號已存在 (kf_account exsited) 61454 客服帳號名長度超過限制 ( 僅允許 10 個英文字符,不包括 @ 及 @ 后的公眾號的微信號 )(invalid kf_acount length) 61455 客服帳號名包含非法字符 ( 僅允許英文 + 數字 )(illegal character in kf_account) 61456 客服帳號個數超過限制 (10 個客服賬號 )(kf_account count exceeded) 61457 無效頭像文件類型 (invalid file type) 61450 系統錯誤 (system error) 61500 日期格式錯誤 63001 部分參數為空 63002 無效的簽名 65301 不存在此 menuid 對應的個性化菜單 65302 沒有相應的用戶 65303 沒有默認菜單,不能創建個性化菜單 65304 MatchRule 信息為空 65305 個性化菜單數量受限 65306 不支持個性化菜單的帳號 65307 個性化菜單信息為空 65308 包含沒有響應類型的 button 65309 個性化菜單開關處于關閉狀態 65310 填寫了省份或城市信息,國家信息不能為空 65311 填寫了城市信息,省份信息不能為空 65312 不合法的國家信息 65313 不合法的省份信息 65314 不合法的城市信息 65316 該公眾號的菜單設置了過多的域名外跳(最多跳轉到 3 個域名的鏈接) 65317 不合法的 URL 87009 無效的簽名 9001001 POST 數據參數不合法 9001002 遠端服務不可用 9001003 Ticket 不合法 9001004 獲取搖周邊用戶信息失敗 9001005 獲取商戶信息失敗 9001006 獲取 OpenID 失敗 9001007 上傳文件缺失 9001008 上傳素材的文件類型不合法 9001009 上傳素材的文件尺寸不合法 9001010 上傳失敗 9001020 帳號不合法 9001021 已有設備激活率低于 50% ,不能新增設備 9001022 設備申請數不合法,必須為大于 0 的數字 9001023 已存在審核中的設備 ID 申請 9001024 一次查詢設備 ID 數量不能超過 50 9001025 設備 ID 不合法 9001026 頁面 ID 不合法 9001027 頁面參數不合法 9001028 一次刪除頁面 ID 數量不能超過 10 9001029 頁面已應用在設備中,請先解除應用關系再刪除 9001030 一次查詢頁面 ID 數量不能超過 50 9001031 時間區間不合法 9001032 保存設備與頁面的綁定關系參數錯誤 9001033 門店 ID 不合法 9001034 設備備注信息過長 9001035 設備申請參數不合法 9001036 查詢起始值 begin 不合法總結
以上是生活随笔為你收集整理的微信公众号的js-sdk鉴权详解,微信公众号开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大型网站架构演化(二)——应用服务和数据
- 下一篇: 解决java.lang.NoClassD