微信小程序企业微信兼容—概述

微信小程序企业微信兼容—概述

# 概述

企业微信移动客户端从2.5.8版本开始,已内置微信小程序基础库,开发者无需适配(部分接口需要适配),即可将微信小程序移植到企业微信上运行,同时开发者也可以针对企业微信提供的扩展接口开发出更适用于企业内部场景的小程序。

本质上企业微信小程序是微信小程序的一个扩展子集,微信小程序的大部分能力都可以在企业微信上运行,同时企业微信扩展了部分和企业相关的能力以满足更多的场景需求。所以一个小程序如果需要同时运行在微信和企业微信端,对于开发者来说需要针对企业微信的环境适配部分不兼容的能力,针对微信环境适配企业微信专有的部分接口能力。

如何获取环境变量可参考文档:wx.getSystemInfo

# 企业微信小程序能力扩展

在微信小程序中可以通过获取用户的openid来唯一标识一个用户,在企业微信小程序中可以通过获取用户的userid来唯一标识一个员工。同时企业微信小程序还提供了和员工企业身份相配套的session生成以及验证的接口、员工基础信息获取的相关接口,除此以外企业微信还扩展了一些企业微信特有的接口能力,更多接口请参考开发文档:企业微信专有接口

# 企业微信关联小程序

由于目前企业微信和微信之间的消息可以互通,使得互通消息中的小程序可以天然的运行在微信和企业微信两个运行环境中。默认情况下,按照微信已有的流程开发的小程序可以直接在两个运行环境中运行,但是如果小程序有调用企业微信的专有接口,如获取员工相关的信息,那么此小程序需要在企业微信管理端进行一次绑定关联操作(一个小程序可绑定多个企业),了解详细步骤

# 多企业关联同一个小程序

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

  • 小程序被关联到多个企业即会有多组[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”。

# 小程序配置体验版

配置企业微信小程序体验版流程:

  1. 该企业微信小程序需已关联到企业
  2. 开发者在微信开发者工具生成二维码
  3. 开发者使用企业微信扫描二维码打开小程序开发版(需登录关联了该小程序的企业)
  4. 点击进入右上角”…”–》点击配置体验版
  5. 进入页面选择体验成员后,发送体验邀请
  6. 成员将收到小程序通知,通过点击小程序通知卡片即可使用该小程序体验版

# 第三方小程序(服务商)

企业微信的第三方服务商也可以开发小程序,并关联到第三方应用中,发布之后即可通过企业授权安装使用。第三方小程序的登录流程与企业有些差异,详见第三方小程序

注:企业开发者请忽略这个章节