027-87227388

                    微信小程序api開發文檔

                    發布時間:2021-04-01 瀏覽:2835

                    wx.login(OBJECT)


                    調用微信小程序接口獲取登錄憑證(code)進而換取用戶登錄態信息,包括用戶的唯一標識(openid) 及本次登錄的 會話密鑰(session_key)。用戶數據的加解密通訊需要依賴會話密鑰完成。


                    OBJECT參數說明:

                    參數名類型必填說明
                    successFunction接口調用成功的回調函數
                    failFunction接口調用失敗的回調函數
                    completeFunction接口調用結束的回調函數(調用成功、失敗都會執行)

                    success返回參數說明:

                    參數名類型說明
                    errMsgString調用結果
                    codeString用戶允許登錄后,回調內容會帶上 code(有效期五分鐘),開發者需要將 code 發送到開發者服務器后臺,使用code 換取 session_key api,將 code 換成 openid 和 session_key

                    示例代碼:

                    //app.js App({  onLaunch: function() {    wx.login({      success: function(res) { if (res.code) { //發起網絡請求 wx.request({            url: 'https://test.com/onLogin',            data: {              code: res.code            }          })        } else { console.log('獲取用戶登錄態失??!' + res.errMsg)        }      }    });  }})

                    code 換取 session_key

                    這是一個 HTTPS 接口,開發者服務器使用登錄憑證 code 獲取 session_key 和 openid。其中 session_key 是對用戶數據進行加密簽名的密鑰。為了自身應用安全,session_key 不應該在網絡上傳輸。

                    接口地址:

                    https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

                    請求參數:

                    參數必填說明
                    appid小程序唯一標識
                    secret小程序的 app secret
                    js_code登錄時獲取的 code
                    grant_type填寫為 authorization_code

                    返回參數:

                    參數說明
                    openid用戶唯一標識
                    session_key會話密鑰
                    unionid用戶在開放平臺的唯一標識符。本字段在滿足一定條件的情況下才返回。

                    返回說明:

                    //正常返回的JSON數據包 { "openid": "OPENID", "session_key": "SESSIONKEY"  "unionid": "UNIONID" } //錯誤時返回JSON數據包(示例為Code無效) { "errcode": 40029, "errmsg": "invalid code" }

                    wx.checkSession(OBJECT)


                    通過上述接口獲得的用戶登錄態擁有一定的時效性。用戶越久未使用小程序,用戶登錄態越有可能失效。反之如果用戶一直在使用小程序,則用戶登錄態一直保持有效。具體時效邏輯由微信維護,對開發者透明。開發者只需要調用wx.checkSession接口檢測當前用戶登錄態是否有效。登錄態過期后開發者可以再調用wx.login獲取新的用戶登錄態。

                    OBJECT參數說明:

                    參數名類型必填說明
                    successFunction接口調用成功的回調函數,登陸態未過期
                    failFunction接口調用失敗的回調函數,登陸態已過期
                    completeFunction接口調用結束的回調函數(調用成功、失敗都會執行)

                    示例代碼:

                    wx.checkSession({  success: function(){ //session 未過期,并且在本生命周期一直有效 },  fail: function(){ //登錄態過期 wx.login() //重新登錄....  }})

                    登錄態維護

                    通過wx.login()獲取到用戶登錄態之后,需要維護登錄態。開發者要注意不應該直接把 session_key、openid 等字段作為用戶的標識或者 session 的標識,而應該自己派發一個 session 登錄態(請參考登錄時序圖)。對于開發者自己生成的 session,應該保證其安全性且不應該設置較長的過期時間。session 派發到小程序客戶端之后,可將其存儲在 storage ,用于后續通信使用。

                    通過wx.checkSession()檢測用戶登錄態是否失效。并決定是否調用wx.login() 重新獲取登錄態

                    登錄時序圖

                    登錄時序圖


                    Bug & Tip

                    1. bug: iOS/Android 6.3.30,在 App.onLaunch 調用 wx.login 會出現異常;


                    国产日韩欧美亚洲中字_久久国产热无码精品免费_亚洲AV无码国产重口在线观看_国产二男一女3p免费视频