溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

微信端開(kāi)發(fā)--登錄小程序步驟

發(fā)布時(shí)間:2020-10-13 17:56:00 來(lái)源:腳本之家 閱讀:123 作者:nyoj_lvy 欄目:web開(kāi)發(fā)

這個(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ā)小工具~!

微信端開(kāi)發(fā)--登錄小程序步驟

該工具的使用必須被項(xiàng)目授權(quán)

微信端開(kāi)發(fā)--登錄小程序步驟

所生成的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í)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI