企業(yè)微信對(duì)接企業(yè)自建應(yīng)用(小程序、h5登陸認(rèn)證)

企業(yè)微信與自建h5應(yīng)用和小程序?qū)?/p>

1.企業(yè)微信對(duì)接h5

? ? ? ?網(wǎng)頁授權(quán)登登陸鏈接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID&state=STATE#wechat_redirect

參數(shù)說明:

參數(shù)說明

appid是企業(yè)的CorpID

redirect_uri是授權(quán)后重定向的回調(diào)鏈接地址,請(qǐng)使用urlencode對(duì)鏈接進(jìn)行處理

response_type是返回類型,此時(shí)固定為:code

scope是應(yīng)用授權(quán)作用域。

snsapi_base

靜默授權(quán),可獲取成員的的基礎(chǔ)信息(UserId與DeviceId);

snsapi_userinfo

靜默授權(quán),可獲取成員的詳細(xì)信息,但不包含手機(jī)、郵箱;

snsapi_privateinfo

手動(dòng)授權(quán),可獲取成員的詳細(xì)信息,包含手機(jī)、郵箱注意:企業(yè)自建應(yīng)用可以根據(jù)userid獲取成員詳情,無需使用snsapi_userinfo和snsapi_privateinfo兩種scope。更多說明見scope

agentid否企業(yè)應(yīng)用的id。當(dāng)scope是snsapi_userinfo或snsapi_privateinfo時(shí),該參數(shù)必填注意redirect_uri的域名必須與該應(yīng)用的可信域名一致。

state否重定向后會(huì)帶上state參數(shù),企業(yè)可以填寫a-zA-Z0-9的參數(shù)值,長(zhǎng)度不可超過128個(gè)字節(jié)

#wechat_redirect是終端使用此參數(shù)判斷是否需要帶上身份信息

員工點(diǎn)擊后,頁面將跳轉(zhuǎn)至redirect_uri?code=CODE&state=STATE,企業(yè)可根據(jù)code參數(shù)獲得員工的userid。code長(zhǎng)度最大為512字節(jié)。


獲取access_token

獲取access_token是調(diào)用企業(yè)微信API接口的第一步,相當(dāng)于創(chuàng)建了一個(gè)登陸憑證,其它的業(yè)務(wù)API接口,都需要依賴于access_token來鑒權(quán)調(diào)用者身份。因此開發(fā)者,在使用業(yè)務(wù)接口前,要明確access_token的頒發(fā)來源,使用正確的access_token。

請(qǐng)求方式:?GET(HTTPS)請(qǐng)求地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT

注:此處標(biāo)注大寫的單詞ID和SECRET,為需要替換的變量,根據(jù)實(shí)際獲取值更新。其它接口也采用相同的標(biāo)注,不再說明。

參數(shù)說明:

參數(shù)說明

corpid是企業(yè)ID,獲取方式參考:術(shù)語說明-corpid

corpsecret是應(yīng)用的憑證密鑰,獲取方式參考:術(shù)語說明-secret

權(quán)限說明:每個(gè)應(yīng)用有獨(dú)立的secret,所以每個(gè)應(yīng)用的access_token應(yīng)該分開來獲取返回結(jié)果:

{

??????? "errcode": 0,

??????? "errmsg": "ok",

??????? "access_token": "accesstoken000001",

??????? "expires_in": 7200

}

參數(shù)說明:

參數(shù)說明

errcode出錯(cuò)返回碼,為0表示成功,非0表示調(diào)用失敗

errmsg返回碼提示語

access_token獲取到的憑證,最長(zhǎng)為512字節(jié)

expires_in憑證的有效時(shí)間(秒)

注意事項(xiàng):

a.

開發(fā)者需要緩存access_token,用于后續(xù)接口的調(diào)用(注意:不能頻繁調(diào)用gettoken接口,否則會(huì)受到頻率攔截)。當(dāng)access_token失效或過期時(shí),需要重新獲取。

b.

access_token的有效期通過返回的expires_in來傳達(dá),正常情況下為7200秒(2小時(shí)),有效期內(nèi)重復(fù)獲取返回相同結(jié)果,過期后獲取會(huì)返回新的access_token。由于企業(yè)微信每個(gè)應(yīng)用的access_token是彼此獨(dú)立的,所以進(jìn)行緩存時(shí)需要區(qū)分應(yīng)用來進(jìn)行存儲(chǔ)。

c.

access_token至少保留512字節(jié)的存儲(chǔ)空間。

d.

企業(yè)微信可能會(huì)出于運(yùn)營(yíng)需要,提前使access_token失效,開發(fā)者應(yīng)實(shí)現(xiàn)access_token失效時(shí)重新獲取的邏輯。

根據(jù)code獲取成員信息

請(qǐng)求方式:GET(HTTPS)請(qǐng)求地址:https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE

參數(shù)說明:

參數(shù)說明

access_token是調(diào)用接口憑證

code是通過成員授權(quán)獲取到的code,最大為512字節(jié)。每次成員授權(quán)帶上的code將不一樣,code只能使用一次,5分鐘未被使用自動(dòng)過期。

權(quán)限說明:


跳轉(zhuǎn)的域名須完全匹配access_token對(duì)應(yīng)應(yīng)用的可信域名,否則會(huì)返回50001錯(cuò)誤。

2.企業(yè)微信對(duì)接自建小程序應(yīng)用(非第三方小程序)

調(diào)用接口 wx.qy.login() 獲取企業(yè)微信派發(fā)的臨時(shí)登錄憑證(code)

https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token=ACCESS_TOKEN&js_code=CODE&grant_type=authorization_code

企業(yè)微信允許多個(gè)企業(yè)關(guān)聯(lián)同一個(gè)小程序,不過企業(yè)在開發(fā)過程中有需要特別注意的地方。

小程序在調(diào)用wx.qy.login之后,發(fā)送code到開發(fā)者服務(wù)器,開發(fā)者服務(wù)器使用code調(diào)用jscode2session接口,因?yàn)樵撔〕绦虮欢鄠€(gè)企業(yè)關(guān)聯(lián),此時(shí)并不知道是哪個(gè)企業(yè)的用戶在登錄。此時(shí),可使用任意一個(gè)企業(yè)中關(guān)聯(lián)本小程序的應(yīng)用的secret獲取access_token,先調(diào)用jscode2session獲得準(zhǔn)確的corpid,再據(jù)此corpid重新進(jìn)行一次登錄流程即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容