您好,登錄后才能下訂單哦!
這個(gè)小程序的主要目的是為了用戶(hù)用微信的用戶(hù)信息登錄后將用戶(hù)信息授權(quán)存入自己的數(shù)據(jù)庫(kù)中,這樣以后每次微信登錄得到的code 所得到的 openid 可以在項(xiàng)目的數(shù)據(jù)庫(kù)中查到該用戶(hù)的相關(guān)信息。
在測(cè)試的過(guò)程中,需要用戶(hù)登錄得到的code,所以會(huì)用到微信開(kāi)發(fā)小工具~!
該工具的使用必須被項(xiàng)目授權(quán)
所生成的code是有時(shí)間限制的
微信登錄端口的api如下
接口地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
請(qǐng)求參數(shù):
參數(shù) 必填 說(shuō)明
appid 是 小程序唯一標(biāo)識(shí)
secret 是 小程序的 app secret
js_code 是 登錄時(shí)獲取的 code
grant_type 是 填寫(xiě)為 authorization_code
返回參數(shù):
參數(shù) 說(shuō)明
openid 用戶(hù)唯一標(biāo)識(shí)
session_key 會(huì)話(huà)密鑰
expires_in 會(huì)話(huà)有效期, 以秒為單位, 例如2592000代表會(huì)話(huà)有效期為30天
返回說(shuō)明:
//正常返回的JSON數(shù)據(jù)包 { "openid": "OPENID", "session_key": "SESSIONKEY" "expires_in": 2592000 }
//錯(cuò)誤時(shí)返回JSON數(shù)據(jù)包(示例為Code無(wú)效) { "errcode": 40029, "errmsg": "invalid code" }
所以我們可以將代碼寫(xiě)成如下
公司將發(fā)送的報(bào)文格式自己都寫(xiě)好了的,我只需要寫(xiě)出請(qǐng)求路徑和請(qǐng)求參數(shù)就ok
//@Param code 用戶(hù)登錄微信生成的code //@Return OAuthResult 返回包含openid和session_key和expires_in的類(lèi) public OAuthResult getOAuthResultByCode(String code) { String path = "/sns/jscode2session"; Map<String, Object> parameters = new HashMap<>(); parameters.put("appid", WechatConstant.WECHAT_APP_ID); parameters.put("secret", WechatConstant.WECHAT_APP_SECRET); parameters.put("js_code", code); parameters.put("grant_type", "authorization_code"); OAuthResult oAuthResult = messageSender.getMessageForObject(path, parameters, OAuthResult.class, false); if (oAuthResult.getOpenid() == null){ throw new BusinessException(BusinessException.Code.OAUTH_PROCESS_ERROR, "OAuth異常,原因:" + oAuthResult.getErrmsg()); } return oAuthResult; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。