微信端開(kāi)發(fā)--登錄小程序步驟
這個(gè)小程序的主要目的是為了用戶用微信的用戶信息登錄后將用戶信息授權(quán)存入自己的數(shù)據(jù)庫(kù)中,這樣以后每次微信登錄得到的code 所得到的 openid 可以在項(xiàng)目的數(shù)據(jù)庫(kù)中查到該用戶的相關(guān)信息。
在測(cè)試的過(guò)程中,需要用戶登錄得到的code,所以會(huì)用到微信開(kāi)發(fā)小工具~!

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

所生成的code是有時(shí)間限制的
微信登錄端口的api如下
請(qǐng)求參數(shù):
參數(shù) 必填 說(shuō)明
appid 是 小程序唯一標(biāo)識(shí)
secret 是 小程序的 app secret
js_code 是 登錄時(shí)獲取的 code
grant_type 是 填寫為 authorization_code
返回參數(shù):
參數(shù) 說(shuō)明
openid 用戶唯一標(biāo)識(shí)
session_key 會(huì)話密鑰
expires_in 會(huì)話有效期, 以秒為單位, 例如2592000代表會(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"
}
所以我們可以將代碼寫成如下
公司將發(fā)送的報(bào)文格式自己都寫好了的,我只需要寫出請(qǐng)求路徑和請(qǐng)求參數(shù)就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;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序?qū)崿F(xiàn)加入購(gòu)物車滑動(dòng)軌跡
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)加入購(gòu)物車滑動(dòng)軌跡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
JS數(shù)組循環(huán)的方式以及效率分析對(duì)比
本文詳細(xì)講解了JS數(shù)組循環(huán)的方式以及效率分析對(duì)比,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11
基于JavaScript實(shí)現(xiàn)手機(jī)短信按鈕倒計(jì)時(shí)(超簡(jiǎn)單)
在淘寶等購(gòu)物網(wǎng)站,我們都會(huì)看到一個(gè)發(fā)送短信倒計(jì)時(shí)的按鈕,究竟是如何實(shí)現(xiàn)的呢?下面小編通過(guò)本篇文章給大家分享一段代碼關(guān)于js實(shí)現(xiàn)手機(jī)短信按鈕倒計(jì)時(shí),需要的朋友參考下2015-12-12
Echarts在Taro微信小程序開(kāi)發(fā)中的踩坑記錄
這篇文章主要介紹了Echarts在Taro微信小程序開(kāi)發(fā)中的踩坑記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
JS瀏覽器導(dǎo)航欄navigator的一些冷知識(shí)
這篇文章主要為大家介紹了JS導(dǎo)航欄navigator的一些冷知識(shí)使用方法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
JS 有趣的eval優(yōu)化輸入驗(yàn)證實(shí)例代碼
這篇文章介紹了eval優(yōu)化輸入驗(yàn)證實(shí)例代碼,有需要的朋友可以參考一下2013-09-09
uniapp電商小程序?qū)崿F(xiàn)訂單30分鐘倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了uniapp電商小程序?qū)崿F(xiàn)訂單30分鐘倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
JS基于VML技術(shù)實(shí)現(xiàn)的五角星禮花效果代碼
這篇文章主要介紹了JS基于VML技術(shù)實(shí)現(xiàn)的五角星禮花效果代碼,涉及JavaScript數(shù)學(xué)運(yùn)算與頁(yè)面元素動(dòng)態(tài)操作的相關(guān)技巧,需要的朋友可以參考下2015-10-10
Json字符串轉(zhuǎn)換為JS對(duì)象的高效方法實(shí)例
一般JSON字符串轉(zhuǎn)換為JS對(duì)象,都使用var jsonStr="{a:1}";var jsonObj = eval("("+jsonStr+")");2013-05-05

