微信開發之網站微信授權登錄-JAVA版
引子
這是微信開發的第二篇博客,本來想第一篇從這篇開始的 這里銜接第一篇微信公眾號H5支付,但是很多開發者做微信開發僅僅是使用支付功能而已,這里切入主題想必很多開發者從事微信公眾號開發,都有需求制定自己的第三方網站,為了增強用戶體驗感,降低用戶的流失率,會在用戶通過公眾號點擊第三方網站的時候,就進行授權登錄,開發者就能獲取到用戶的一些個人信息,例如頭像,openid,地址等,從而完善用戶的個人信息。
一、前言
網站微信授權登錄的准備工作:官方接口文檔 ,微信服務號(怎么注冊我就不提了),准備工作做好了過后,梳理流程,切勿愣頭青,先把流程梳理好,才好帶入業務
官方文案: 網站應用微信登錄是基於OAuth2.0協議標准構建的微信OAuth2.0授權登錄系統。在進行微信OAuth2.在進行微信OAuth2.0授權登錄接入之前,在微信開放平台注冊開發者帳號,並擁有一個已審核通過的網站應用,並獲得相應的AppID和AppSecret,申請微信登錄且通過審核后,可開始接入流程。
二、思路
這里是官方的授權流程圖,根據流程圖顯示,首先是發起授權登錄的請求,然后重定向微信,微信又會重新跳轉到用戶設置好的url上面,並且寫到了code參數,通過code參數加上AppIdheAppSecret,換取到token,最后根據token拿到用戶的信息,操作就結束了。
三、場景代碼
第一步,進行微信授權獲取code, 請求路徑:https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 參數需求:
下面貼上我自己的代碼:
String Hdurl = "這里填寫你的微信重定向路徑必須為域名"; String URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + WeiXinConfig.appid + "&redirect_uri=" + URLEncoder.encode(Hdurl) + "&response_type=code&scope=" + WeiXinConfig.scope + "&state=STATE#wechat_redirect"; return "redirect:" + URL;
如果時候請求成功的話,微信會彈出一個授權框,點擊同意,就會跳轉到自己設置的重定向路徑。記住code是攜帶在get請求里面的,拿到code后,通過code去get請求,獲取token,這里注意一點要獲取服務器的token必須在要公共平台里面的基本設置,設置IP白名單
貼上我的代碼:
//獲取token logger.info("獲取code ——————" + code); String tokenUrl = " https://api.weixin.qq.com/sns/oauth2/access_token"; String TokenJson = HttpRequest.sendGet(tokenUrl, "appid=" + WeiXinConfig.appid + "&secret=" + WeiXinConfig.AppSecret + "&code=" + code + "&grant_type=authorization_code"); logger.info("獲取token ——————" + TokenJson.toString());
這里如果沒有問題的話,響應回來的json數據,里面就會有access_token這個參數里面攜帶了token,注意一點,token有效時間為兩個小時,toekn一天是用使用上限的默認為2000,微信里面的很多操作都需要使用toekn,所以可以根據token設置一套過期機制,過后期才去申請新,順帶還有用戶的openid。
下面進行微信授權的最后一步,通過token和openid獲取用戶的基本信息
貼上代碼:
String userUrl = "https://api.weixin.qq.com/sns/userinfo"; String userInfo = HttpRequest.sendGet(userUrl, "access_token=" + token.getAccess_token() + "&openid=" + token.getOpenid() + "&lang=zh_CN"); logger.info("獲取userInfo ——————" + userInfo.toString());
不出問題的話,就會通過響應的json信息就能拿到用戶的基本信息了,微信授權登錄的所有操作就完成了,然后開發者可以根據自己的業務進行下一步流程。
四、總結
其實微信網頁授權登錄,算是微信開發里面,比較簡單的功能了,參數細心注意一點的話基本可以一次過了,最后如果這篇文章有什么不好的地方,希望大家指出來,如果能幫助到那些沒有思路沒有接觸過微信開發的小伙伴解決問題,這就是我寫博客最大的動力。
文章純手寫,轉載請帶上作者。