java做後臺移動端微信第三方登錄

剛開始寫該接口的時候一臉茫然,後來發現,說白了就是對微信API的調用。按照步驟,想獲取什麼參數,就發送什麼URL鏈接請求,微信API會返回給你想要的參數。代碼就不貼了,無非就是通過URL,發送請求,然後獲取參數,很容易實現。具體步驟微信官方文檔有,在此也借鑑了一下。

** 微信登錄步驟流程** 


1.開放平臺註冊

    在進行微信OAuth2.0授權登錄接入之前,首先在微信開放平臺註冊開發者帳號,獲得相應的AppID和AppSecret,申請微信登錄且通過審覈後,方可進行下一步接口調用。

2.授權登錄,獲取code

    開發者需要配合使用微信開放平臺提供的SDK進行授權登錄請求接入。正確接入SDK後並擁有相關授權域權限後,開發者移動應用會在終端本地拉起微信應用進行授權登錄,微信用戶確認後微信將拉起開發者移動應用,並帶上授權臨時票據(code)。

官方調用示例:



WEB端調用:

發送如下URL請求,微信服務器端會返回對應的code及其它參數

String url = "https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect";

請求參數說明:

        APPID:爲平臺註冊時獲取的appid

        REDIRECT_URI:重定向地址,需要進行UrlEncode

        response_type:填code

        scope:應用授權作用域,擁有多個作用域用逗號(,)分隔,網頁應用目前僅填寫snsapi_login即可

        state:用於保持請求和回調的狀態,授權請求後原樣帶回給第三方。該參數可用於防止csrf攻擊(跨站請求僞造攻擊),建議第三方帶上該參數,可設置爲簡單的隨機數加session進行校驗

3.通過code獲取access_token

發送如下URL請求,獲取access_token等參數

String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
請求參數說明:  
 

        APPID:                   應用唯一標識,在微信開放平臺提交應用審覈通過後獲得

        AppSecret:             應用密鑰AppSecret,在微信開放平臺提交應用審覈通過後獲得

        code:                     填寫第二步獲取的code參數

        grant_type:            填authorization_code(固定,來自於官方文檔)

正確的返回:

"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", 
"scope":"SCOPE",
"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"

}

返回參數說明:

            access_token         接口調用憑證

            expires_in         access_token接口調用憑證超時時間,單位(秒)

            refresh_token 用戶刷新access_token

            openid                 授權用戶唯一標識

            scope                 用戶授權的作用域,使用逗號(,)分隔

            unionid                 當且僅當該移動應用已獲得該用戶的userinfo授權時,纔會出現該字段

錯誤返回樣例:

    {"errcode":40029,"errmsg":"invalid code"}

4.通過access_token獲取用戶微信信息

String url = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID";

參數說明:

        ACCESS_TOKEN:第三步獲取的access_token 

        OPENID:第三步獲取的openId

返回參數說明:

            openId:                          用戶標識

            nickName:                     用戶暱稱

            sex:                                男1,女2,0未知

            country:                         國家

            province:                       省份

            city:                               城市

            headImgUrl:                  頭像鏈接

            privilegeList:                  用戶特權信息

            unionId:                        全局唯一標識

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章