Skip to main content

企业微信服务商

userAgent

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_16) AppleWebKit/605.1.15 (KHTML, like Gecko)wxwork/3.1.12 (MicroMessenger/6.2) WeChat/2.0.4
caution
  • 验证回调 ReceiveID 内容为 ProviderCorpId
  • 命令回调 ReceiveID 内容为 SuiteID
  • 数据回调 ReceiveID 内容为 ToUsername - AuthCorpId
  • 无法获取用户的 Name
    • 调用时返回 userid 以代替 name
    • 自建应用需要管理员授权才返回
    • 对于非第三方 创建的成员,第三方通讯录应用也不可获取
    • 未返回 name 的情况需要通过通讯录展示组件来展示名字
  • 无法获取用户头像
  • 第三方 通讯录应用 创建的成员 可获取的额外信息
    • 电话、头像、邮箱、是否部门上级、座机、别名、扩展属性、员工二维码、成员对外属性、地址

Auth

  • 企业接口 Token - access_token
    • corpid + 永久授权码
  • 应用授权的 Token - suite_access_token
    • suite_id/第三方应用 ID + suite_secret/第三方应用密钥
      • 登录服务商管理后台->标准应用服务->应用管理栏->应用
      • -> suite_access_token 访问应用授权的接口
        • -> 企业 access_token
  • 服务商的 Token - provider_access_token

网页授权登陆

  • scope
    • snsapi_base - 默认 - 可获取成员的的基础信息(UserId 与 DeviceId);
    • snsapi_userinfo - 可获取成员的详细信息,但不包含手机、邮箱;
    • snsapi_privateinfo - 手动授权 - 可获取成员的详细信息,包含手机、邮箱
      • 第三方 不能 获取手机和邮箱
自建应用 oauth2
https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
  • scope 固定为 snsapi_base
第三方应用 oauth2
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
  • 第三方应用 需要在打开的网页里面携带用户的身份信息
  • 与自建相同 - 但 appid 为 suite_id
    • ww, wx 开头
企业 oauth2
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
  • 企业 需要在打开的网页里面携带用户的身份信息
  • agentid
    • 没有时则认为是 snsapi_base
  • snsapi_userinfo 或 snsapi_privateinfo 需要 agentid
    • redirect_uri 匹配 可信域名
    • 服务商配置的可信域名
  • 第三方 qr 回调包含
    • auth_code
    • appid

Dev

  • 普通应用 - 只读通讯录
  • 通讯录应用 - 可读写通讯录
    • 一家企业只能授权一个通讯录应用
  • 回调服务
    • 自定义丰富的服务行为。比如,用户向应用发消息时,识别消息关键词,回复不同的消息内容;用户点击应用菜单时,转化为指令,执行自动化任务。
    • 可以及时获取到状态变化。比如,通讯录发生变化时,不需要定时去拉取通讯录对比,而是实时地获取到变化的通讯录结点,进行同步。
    • GET+POST
      • GET 用于验证
    • AES 加密
  • 接口差异
    • 消息推送
      • 不支持发送到群聊
      • 不支持发送到互联

回调

  • https://work.weixin.qq.com/api/doc/10982
    • 在第三方回调事件中使用加解密算法,receiveid 的内容为 suiteid
    • 收到推送后都必须直接返回字符串 success
  • SuiteTicket
    • 有效期 30 分钟
    • 一般每隔 11 分钟会推送一次
    • 最长为 512 字节

会话存档

caution
  • 只有基于 glibc 的 Linux 系统才能使用会话存档功能
  • RSA2048 pkcs1
openssl genrsa -out private-key.pem 2048
openssl rsa -in private-key.pem -pubout -out public-key.pem

FAQ

redirect_uri 与配置的授权完成回调域名不一致

服务商 qr 不能用 js 内嵌