網站微信授權登錄-JAVA版


微信開發之網站微信授權登錄-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信息就能拿到用戶的基本信息了,微信授權登錄的所有操作就完成了,然后開發者可以根據自己的業務進行下一步流程。

四、總結

  其實微信網頁授權登錄,算是微信開發里面,比較簡單的功能了,參數細心注意一點的話基本可以一次過了,最后如果這篇文章有什么不好的地方,希望大家指出來,如果能幫助到那些沒有思路沒有接觸過微信開發的小伙伴解決問題,這就是我寫博客最大的動力。

  文章純手寫,轉載請帶上作者。

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM