您好,登錄后才能下訂單哦!
這個小程序的主要目的是為了用戶用微信的用戶信息登錄后將用戶信息授權存入自己的數據庫中,這樣以后每次微信登錄得到的code 所得到的 openid 可以在項目的數據庫中查到該用戶的相關信息。
在測試的過程中,需要用戶登錄得到的code,所以會用到微信開發小工具~!
該工具的使用必須被項目授權
所生成的code是有時間限制的
微信登錄端口的api如下
接口地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
請求參數:
參數 必填 說明
appid 是 小程序唯一標識
secret 是 小程序的 app secret
js_code 是 登錄時獲取的 code
grant_type 是 填寫為 authorization_code
返回參數:
參數 說明
openid 用戶唯一標識
session_key 會話密鑰
expires_in 會話有效期, 以秒為單位, 例如2592000代表會話有效期為30天
返回說明:
//正常返回的JSON數據包 { "openid": "OPENID", "session_key": "SESSIONKEY" "expires_in": 2592000 }
//錯誤時返回JSON數據包(示例為Code無效) { "errcode": 40029, "errmsg": "invalid code" }
所以我們可以將代碼寫成如下
公司將發送的報文格式自己都寫好了的,我只需要寫出請求路徑和請求參數就ok
//@Param code 用戶登錄微信生成的code //@Return OAuthResult 返回包含openid和session_key和expires_in的類 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; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。