2020.03.09
微信小程序API支持情况 企业微信JS-SDK 所有JS接口列表 开发文档注意点
如果开发者的小程序需要同时运行在微信和企业微信端,那么需要知道小程序当前的运行环境。
开发者可以通过调用异步接口 wx.getSystemInfo 或者同步接口wx.getSystemInfoSync 获取,在企业微信运行时,会额外返回一个environment字段并赋值为 “wxwork”,在微信里面运行时则不返回该字段。建议开发者在小程序的app.js里面对环境变量进行捕获并作为全局变量进行缓存。
多企业关联同一个小程序
企业微信允许多个企业关联同一个小程序,但是开发者在开发过程中需要注意以下几点:
- 小程序被关联到多个企业即会有多组
[corpid, Secret],开发者可以使用任意一个企业的[corpid, Secret]获取access_token - 使用获取到的
access_token和code参数调用jscode2session接口 - 判断返回的用户
corpid和access_token与第一步中的corpid是否一致,如果不一致,则调用wx.qy.login重新进行一遍登录流程,此时使用返回的[corpid, secret]来调用jscode2session接口 - 如果没有使用这种流程,调用企业微信通讯录相关的接口时,会报错
“not allow to cross corp”。
wx.qy.login(Object object)
获取企业微信派发的临时登录凭证
code2Session
临时登录凭证校验接口是一个服务端HTTPS 接口,开发者服务器使用临时登录凭证code获取 session_key、用户userid以及用户所在企业的corpid等信息。
注意:
- 企业微信的jscode2session请求url与微信的不同
- 企业微信的jscode2session返回的是userid,而微信返回的是openid
- 获取access_token时请使用企业的corpid参数,请勿使用小程序的appid
- 会话密钥 session_key 是对用户数据进行加密签名的密钥,为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。
参数说明
| 参数 | 说明 |
|---|---|
| corpid | 用户所属企业的corpid |
| userid | 用户在企业内的UserID,对应管理端的帐号,企业内唯一。注意:如果该企业没有关联该小程序,则此处返回加密的userid |
| session_key | 会话密钥 |
wx.qy.checkSession(Object object)
校验用户当前 session_key 是否有效
注意事项: 如果有重新登录,需要调用 jscode2session 接口后,session_key 才会有效
以下接口调用调用前提:
1、必须先调用过
wx.qy.login,且session_key未过期,开发者可调用wx.qy.checkSession检查当前登录态.
2、用户在应用可见范围内时可以静默获取,否则需要用户同意确认。
获取企业成员信息
wx.qy.getEnterpriseUserInfo(Object object)
获取企业成员信息基本信息
wx.qy.getAvatar(Object object)
获取企业成员头像
wx.qy.getQrCode(Object object)
获取企业成员个人二维码
wx.qy.getNFCReaderState
判断当前设备是否支持 NFC 能力