微信扫码免密登陆第三方应用平台
官方文檔:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN
開發工具:postMan和Idea
工具類: cn.hutool.http.HttpUtil;(java 模擬發送htttp請求)
第一步,微信用戶掃碼獲取權限得到code
點擊鏈接/或利用js模擬發送請求獲取掃碼的二維碼圖片:
GET:https://open.weixin.qq.com/connect/qrconnect?appid=appid&redirect_uri=redirect_uri&response_type=code&scope=snsapi_login
注:appid為你要跳轉的第三方網站的appid
注:redirect_uri為你要跳轉的第三方網站的url(提示:url最好用encode加密后的url //百度encode解碼)
第二步,
用戶掃碼后會跳轉你指定的鏈接,code會在鏈接上顯示:(讓前端獲取鏈接里面的code,然后傳給你。//其實我并不知道java怎么獲取…)
第三步,利用code獲取微信掃碼用戶的AccessToken/unionId/openId
發送Get請求獲取AccessToken
GET:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
返回參數意思:(//如果返回有errcode,你調用失敗了…)
AccessToken:微信調用接口的憑證(和Token差不多)
unionId:(對應(網站)appid下的唯一id,As:比如騰訊,騰訊有兩個產品:微信/QQ,你掃碼微信獲取unionId,這個id是微信id,通過微信Id就能找到你微信的信息)
openId:主要有這個Id,騰訊就能找到你(不限那個產品)
expires_in:AccessToken有效時間(7200指2個小時 26060s)
第四步,
利用accessToken和openId獲取用戶的信息:(//如果返回有errcode,你調用失敗了…)
GET:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
第五步,設計一張wx表,記錄微信用戶信息,在user表添加wxId字段,通過該Id進行關聯user表。
如果微信掃碼登陸的話insert 當前微信用戶信息數據,并在user新生成一條數據,并用Stringutils.getUUId生成wxId作關聯,在如果有該數據則update。
注:模擬調用wx接口的時候最好寫個Util
注:postMan 同理(收藏夾)
總結
以上是生活随笔為你收集整理的微信扫码免密登陆第三方应用平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL过滤相同binlog_通过Li
- 下一篇: element-ui select