100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 企业微信小程序--多企业关联同一个小程序

企业微信小程序--多企业关联同一个小程序

时间:2023-08-22 12:57:18

相关推荐

企业微信小程序--多企业关联同一个小程序

企业微信允许多个企业关联同一个小程序,但是开发者在开发过程中需要注意以下几点:

小程序被关联到多个企业即会有多组[corpid, Secret],开发者可以使用任意一个企业的[corpid, Secret]获取access_token使用获取到的access_token和code参数调用jscode2session接口第二步调用会返回当前用户所在真实的corpid,如果与第一步所使用的corpid不一致,则使用真实的corpid重新进行一遍登录流程如果没有使用这种流程,调用企业微信通讯录相关的接口时,会报错 “not allow to cross corp”。

1.获取企业access_token(corpid 是 企业ID,corpsecret 是 应用的凭证密钥)

请求URL:https://qyapi./cgi-bin/gettoken?corpid=ID&corpsecret=SECRET

{"errcode":0,"errmsg":"","access_token": "accesstoken000001",//获取到的凭证"expires_in": 7200//凭证有效时长(秒)}

2.通过临时登录凭证校验接code2Session,获取 session_key、用户userid以及用户所在企业微信的corpid等信息(access_token、code【开发者服务器使用临时登录凭证】、grant_type【此处固定为authorization_code】)注意:access_token必须是与小程序关联的企业微信应用secret所获得

//正常返回的JSON数据包{"corpid": "CORPID",//用户所属企业的corpid"userid": "USERID",//用户在企业内的UserID,对应管理端的帐号,企业内唯一。注意:如果该企 //业没有关联该小程序,则此处返回加密的userid"session_key": "kJtdi6RF+Dv67QkbLlPGjw==",//会话密钥"errcode": 0,"errmsg": "ok"}//错误时返回JSON数据包(示例为Code无效){"errcode": 40029,"errmsg": "invalid code"}

注意:

企业微信的jscode2session请求url与微信的不同企业微信的jscode2session返回的是userid,而微信返回的是openid获取access_token时请使用企业的corpid参数,请勿使用小程序的appid会话密钥 session_key 是对用户数据进行加密签名的密钥,为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。

总结:

一个小程序可以关联多个企业微信,但是如果想正确的获取每个企业的信息需要:

1.任意一个企业的[corpid, Secret]获取access_token

2.通过临时登录凭证校验接口获取当前用户所在的企业corpid、用户Userid

3.判断企业corpid是否与登录凭证校验接口用到的corpid一致,如果不一致重新进行登录验证及可。

每个企业的应用(例如:XX小程序)access_token是彼此独立的,所以一个小程序在不同企业使用时,服务商进行access_token缓存时需要区分企业(corpid)来进行缓存,企业微信可能会出于运营需要,提前使access_token失效,开发者应实现access_token失效时重新获取的逻辑。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。