企业微信号二次开发 & wecomapi.com
个人微信接口产品官网管理后台
个人微信接口产品官网管理后台
  1. 接入指南与说明
  • API文档目录
    • 接入指南与说明
      • 👉 接入须知
      • 🛡️ Webhook调试指南
      • 🔄 消息推送(回调)服务
      • 📖 常见业务与技术 FAQ
      • ⚠️ 开发常见问题
      • ✅ 账号使用注意事项
    • 开放接口
      • 01 登录与设备
        • 配置消息回调地址
          POST
        • ① 创建设备并获取 guid
          POST
        • ② 获取登录二维码
          POST
        • ④ 校验登录验证码(按需)
          POST
        • ③ 查询扫码登录状态
          POST
        • 账号退出登陆
          POST
        • 查询账号在线状态
          POST
      • 02 联系人管理
        • UserID 转 OpenID
          POST
        • OpenID 转 UserID
          POST
        • 外部联系人与好友申请列表
          POST
        • 内部联系人列表
          POST
        • 批量获取联系人详情
          POST
        • 部门信息详情查询
          POST
        • 搜索联系人
          POST
        • 通过二维码查询联系人
          POST
        • 添加个微联系人
          POST
        • 添加企微联系人
          POST
        • 停止并释放设备
          POST
        • 添加群成员为好友
          POST
        • 添加企微名片联系人
          POST
        • 退出当前设备
          POST
        • 重新添加单删联系人
          POST
        • 同意好友申请
          POST
        • 修改外部联系人信息
          POST
        • 修改内部联系人信息
          POST
      • 03 消息收发与会话
        • 发送引用消息
        • 发送文本消息
        • 发送混合文本消息
        • 发送图片消息
        • 发送 GIF 表情
        • 发送视频消息
        • 发送文件消息
        • 发送语音消息
        • 发送链接消息
        • 发送小程序消息
        • 发送名片消息
        • 发送视频号消息
        • 发送位置消息
        • 删除联系人
        • 语音转文字:提交任务
        • 语音转文字:查询结果
        • 收藏 GIF 表情
        • 同步个人收藏消息
        • 撤回消息
        • 修改消息状态
        • 发起群发消息
        • 查询群发状态
        • 查询群发规则
        • 同步历史消息分页
        • 查询会话列表分页
        • 编辑会话分组
        • 查询会话分组
      • 04 文件上传与下载
        • 企微大文件异步上传
        • 企微大文件异步下载
        • 企微文件异步上传
        • 企微文件异步下载
        • 企微文件下载
        • 个微文件下载
        • 个微文件异步下载
        • 上传缩略图
        • SDK 临时云存储上传
        • CDN 文件转 URL
        • URL 文件上传
        • 本地文件上传
      • 05 外部群与群组管理
        • 设置群消息置顶
        • 移除群消息置顶
        • 查询群消息置顶列表
        • 查询群组列表分页
        • 批量获取群详情
        • 群成员变动查询
        • 获取群二维码
        • 批量获取群详情(兼容入口)
        • 修改群名称
        • 创建群组
        • 修改群备注
        • 修改群内昵称
        • 修改群公告
        • 开启或关闭群改名权限
        • 禁止群成员修改群名称
        • 邀请或添加群成员
        • 管理员确认群成员邀请
        • 移除群成员
        • 禁止群成员互相添加
        • 添加群管理员
        • 取消群管理员
        • 开启入群确认
        • 通过链接接受入群邀请
        • 退出群组
        • 转让群主
        • 解散群组
        • OpenID 转 RoomID
        • RoomID 转 OpenID
      • 06 账号资料
        • 生成个人二维码
        • 获取账号资料
        • 更新账号资料
        • 查询企业资料
        • 查询企业应用
        • 查询企业应用详细
      • 07 客户标签管理
        • 查询标签列表分页
        • 客户标签增删
        • 个人标签增删改
      • 08 朋友圈能力
        • 发布朋友圈
        • 删除朋友圈
        • 朋友圈点赞或取消点赞
        • 朋友圈评论或追评
        • 分页查询朋友圈
        • 批量获取朋友圈详情
        • 删除朋友圈评论
        • 朋友圈素材上传
  1. 接入指南与说明

⚠️ 开发常见问题

文档说明
本文整理企业微信 API 接入过程中的高频问题,覆盖 基础接入、Token 授权、登录设备、消息发送、Webhook 回调、文件媒体、外部群管理、数据安全 等场景。
本文档面向开发者,重点说明企业微信二次开发中的调用顺序、参数理解、稳定性建议和常见排查方式。接口调用前,建议先完成设备登录、回调配置和账号在线状态确认。

一、基础接入#

1. 首次接入应该按什么顺序进行?#

先准备好服务端凭证存储和回调接收服务,再完成以下步骤:
1.
创建设备并获取 GUID,保存返回的设备标识。
2.
获取登录二维码,由账号本人扫码确认。
3.
查询扫码登录状态,按提示完成必要的验证码流程。
4.
查询账号在线状态,核对登录账号与企业是否正确。
5.
确认已配置消息回调地址,并用授权测试对象验证消息收发和回调。
6.
小范围启用业务,确认结果与异常处理正常后再扩大使用范围。
回调可以提前配置,不要等正式业务运行后才准备接收服务。本文保留了配套接口文档的 Apifox 内部链接,需在对应文档项目中打开。

2. 是否需要额外安装第三方插件?#

调用已开通的 HTTP API 时,业务系统使用标准 HTTP 客户端即可,无需为了发送请求额外安装客户端插件。设备创建、扫码登录和业务调用按平台文档完成。
保留企业微信官方客户端,用于身份确认、查看安全提示和核对实际执行结果。

3. 企业微信客户端版本有要求吗?#

以当前接口版本的支持范围和平台通知为准,不作“任何客户端版本都兼容”的承诺。接入前确认官方客户端能够正常登录和收发消息;升级后如出现异常,应记录版本及现象再排查,不要自行使用修改版客户端或反复降级尝试。

4. 是否必须使用 SDK?#

不必须。本文按 HTTP API 说明,可使用 Java、Python、Node.js、Go、PHP、C# 等语言接入。SDK 的提供情况与支持版本,以平台当前发布的资料为准。
自行封装时,建议统一处理请求鉴权、业务码、超时、大整数、脱敏日志和回调分发,避免每个业务模块各自实现一套规则。

5. 统一请求地址和格式是什么?#

使用开通时提供的完整 API 地址。当前兼容业务接口提供以下入口:
POST /api/qw/doApi
Content-Type: application/json
WECOM-TOKEN: <你的接口令牌>
请求体通过 method 指定能力,通过 params 传入参数。以下是状态查询请求结构,GUID 为占位符:
{
  "method": "/login/checkLogin",
  "params": {
    "guid": "<平台返回的设备GUID>"
  }
}
部分接入地址包含部署前缀。已有文档或项目中出现的 /finder/api 等写法,必须与该环境实际提供的完整地址核对,不能默认在所有环境都有效,也不要重复拼接前缀。文件上传等非 JSON 请求按对应接口页面说明处理。

6. HTTP 200 是否表示调用成功?#

不表示。应分层判断:
层级判断方式
网络与 HTTP处理连接失败、超时、非 200 状态和无法解析的响应
兼容业务 API成功为 code=0、msg="成功";业务失败仍可能返回 HTTP 200
具体操作检查 data 中的状态、逐项结果或任务信息,不能把受理当成完成
控制台接口使用独立的鉴权与返回约定,成功码为 200,不能与业务 API 混用
不要只匹配“成功”二字,也不要仅检查 data 是否存在。批量操作应逐项记录结果,只对需要处理的失败项采取后续措施。

7. 为什么群 ID 或消息 ID 会变化、查不到?#

先检查大整数精度。群 ID、成员 ID、消息 ID、seq 等可能超过 JavaScript Number 的安全整数范围。
从原始响应文本使用无损 JSON 解析方式,并在业务模型和数据库中以字符串或精确整数保存标识。普通 JSON.parse 已经丢失精度后,再转字符串或 BigInt 无法恢复原值。
发送请求仍须遵守具体接口要求的类型,不能把所有数字参数一律改成字符串;不要对标识做浮点运算或自行截断。

二、Token 与授权#

8. Token 应如何传递和保存?#

业务 API 的请求头为:
WECOM-TOKEN: <你的接口令牌>
它用于接口授权及相关设备、回调配置的归属管理。不要混用控制台登录令牌或其他平台的 Token 请求头。
通过 HTTPS 调用,Token 仅保存在服务端受控环境中,不写入网页前端、公开仓库、安装包、截图或公开日志。

9. 单个 Token 与多个 Token 有什么区别?#

方式适用场景接入要点
单个 Token同一业务系统集中处理账号该 Token 下设备共用其配置的回调地址,按 GUID 分流
多个 Token多项目或多业务线分别管理分别配置凭证、设备归属及回调,业务侧也要做好访问权限控制
多个 Token 不代表多个独立套餐。同一平台用户下的账号额度按用户范围核算,不能通过增加 Token 扩大授权数量。

10. 一个 Token 可以管理多少个账号?#

一个 Token 可以管理多个设备或账号,实际可用数量取决于当前用户的授权、套餐和在线名额。应核对该用户下全部 Token 的使用情况,不能只统计当前 Token。
额度不足时先核对套餐、现有在线账号和实际需求;确需替换账号时,再按文档规定的退出登录流程操作,并核对实际状态及名额变化。不要为了测试额度随意退出正在服务的账号。

11. 服务到期或授权不足怎么处理?#

先查看控制台授权状态、接口返回码和具体原因。登录准入或业务调用可能受到限制,但不能把所有授权错误都当成企业微信掉线。
生产系统应监控凭证和服务有效期、授权错误及状态回调,并为关键业务告警。调整授权后重新核对实际状态,避免原样高频重试;账号查询应按需要执行,不要给每个任务增加独立轮询。

三、登录与设备#

12. GUID 是什么,为什么要保存?#

guid 是平台返回的设备标识。登录、状态查询、消息发送及许多联系人和群接口需要它来定位操作对象。
应保存 Token、GUID、登录账号和企业的对应关系。不要自行生成 GUID,也不要用微信账号 ID、成员 ID 或群 ID 替代;同一账号重新接入后,应核对并更新实际绑定关系。

13. 获取二维码后如何查询状态?#

调用查询扫码登录状态,读取 loginQrcodeStatus。轮询按接口或页面提示设置有限间隔;流程结束、二维码失效或用户取消后,停止该轮轮询。
状态含义处理方式
-1登录态或二维码流程失效查看返回原因,再按登录流程处理
0未登录或等待扫码继续当前流程;不能单凭此值认定支持免扫码
1已扫码,待确认等待账号本人确认
2扫码登录成功停止该轮轮询,再核对账号在线状态及业务就绪情况
3登录失败保留原因,排查后再操作
4用户取消停止该轮流程,确认本人需要后再发起
10待输入 6 位验证码按提示调用验证码校验接口,再继续查询
需要验证码时,参考校验登录验证码。二维码有效期以实际提示为准,不套用固定的“3 分钟后重建设备”规则。

14. 设备离线或提示设备不存在,是否先恢复设备?#

不能统一按“先恢复、再取码”处理。
设备不存在或无权限: 先核对 Token、GUID、设备归属及是否仍有有效记录,不能把归属错误当成网络掉线。
账号离线: 先暂停该账号的写任务,读取掉线原因推送和客户端提示,再决定等待平台恢复、本人重新登录或联系支持。
调用超时或查询异常: 先检查网络及错误返回,不能直接判定账号被封或设备已删除。
当前恢复设备接口不保证恢复在线,不能以它返回成功代替实际在线检查。部分可恢复连接异常由平台提供最长 5 分钟恢复宽限;期间不要多个程序同时循环恢复或重新扫码。

15. 免扫码二次登录在什么情况下可用?#

设备曾经成功登录,并且保留的登录状态仍可恢复时,可以按免扫码二次登录的条件尝试。
它不是无条件恢复方式。主动退出、身份验证、账号受限或登录信息不可恢复时,应按实际原因处理;不要把免扫码失败改为无限循环重试。

16. 停止设备接口是否能释放账号名额?#

不要据接口名称作此判断。当前停止设备接口对应的 /client/stopClient 为兼容保留接口,成功应答不代表设备已停止或名额已释放。
需要退出账号时,应使用文档规定的退出登录流程,并核对账号状态和名额变化。不要把停止设备或重新创建 GUID 作为异常排查的默认第一步。

17. 登录成功后,为什么业务仍然失败?#

扫码完成、连接建立和业务可用是不同状态。先检查 /login/checkLogin 的完整结果:
结果含义
外层 code=0状态查询完成,不等于在线
userOnlineStatus=2 且 errorCode=0本次查询报告在线,后续仍检查业务结果
userOnlineStatus=0/-1 且 errorCode=40011设备离线或登录态异常,结合原因推送与恢复结果处理
内层 errorCode=50001/50002服务或查询异常,不能据此认定封禁或必须重新扫码
GapConnected、GapSucceed 仅为连接通知。业务失败还应检查 GUID、Token 归属、参数、目标对象及操作权限。

四、消息发送与自动回复#

18. 每天能发多少消息,单个账号能处理多少会话?#

不能给所有消息接口和账号套用同一个固定值,也不能按“理论无限”设计系统。具体能力与限制取决于接口、授权、账号状态、消息频率和业务处理能力。
技术上应按账号建立队列和限速,监控等待时间、失败率和回调积压。账号操作规范及好友数量建议见账号使用注意事项。不要把官方应用或机器人接口的配额直接套用于本平台接口。

19. 自动回复如何实现?#

在账号具备相应收发能力和授权的前提下,由回调接收与消息发送接口组合实现:
1.
接收回调,可靠保存或入队后确认接收。
2.
按 guid、senderId、fromRoomId、cmd、msgType 判断账号、来源和类型。
3.
完成去重、权限及触发条件检查,再执行关键词、AI 或工单逻辑。
4.
将回复放入对应账号的发送队列,记录最终结果。
应排除不需要回复的自己消息、机器人消息和系统通知,限制连续回复次数,提供人工接管与暂停功能。不要让多个机器人相互触发。

20. 私聊和群聊如何指定接收对象?#

多数发送接口使用 toId 指定联系人或群,按对应接口要求传入。业务系统应明确记录对象类型,不能凭昵称、ID 长度或数值外观猜测。
发送前核对账号、对象与群成员范围,避免账号间串用 ID 或误发。

21. 发送超时或批量部分失败,能否直接重发?#

不能。超时可能发生在远端已执行之后,没有响应不等于没有发送。
为每次业务操作建立唯一编号,持久保存待发送、执行中、已完成、失败和结果待核查等状态。业务编号是调用方的管理机制,不代表平台存在通用幂等参数。
只读查询可进行有次数上限的退避重试;发送、添加、邀请、删除或发布等写操作先核对实际结果。批量操作逐项处理,避免整批重试重复执行成功项。

22. 图片、视频和文件发送前需要上传吗?#

按具体发送接口要求准备素材。常见流程为:
1.
调用本地文件上传或URL 文件上传。
2.
保存实际返回的文件标识、加密参数、文件名、大小等字段。
3.
按对应消息接口的字段名称与类型发送。
不同媒体和上传方式的返回字段可能不同,不能将一组文件参数机械用于全部发送接口;视频封面、图片尺寸和 GIF 处理按各接口要求准备。

五、Webhook 回调#

23. 一个 Token 能配置多个回调地址吗?#

当前同一 Token 保存一个回调地址,其账号消息和状态等事件统一投递到该地址。多个业务需要消费时,可在自己的接收服务可靠入队后分发;需要分别管理设备归属和回调时,可使用多个 Token。
通过 /client/setCallback 设置回调时,authType 填 Authorization;当前也接受空值,但不接受在此参数中填写 Bearer 或自定义头名。authSecret 按接收端期望的 Authorization 值配置,不要自行重复拼接认证前缀。
保存前平台会进行连通性探测,测试报文与正式业务事件结构不同,接收端需兼容处理。保存成功只说明探测请求可达,不证明业务报文已被正确处理。 配置后仍需验证真实事件、鉴权及接收结果。

24. 回调是什么结构,如何区分账号?#

回调为 POST JSON,外层包含 code、msg、data。data 是事件数组,应逐项处理,不能当成 JSON 字符串再次解析,也不能直接当单个对象读取。
字段用途与注意事项
guid设备及账号路由依据,去重时需要纳入范围
userId所接入账号自身的标识,不是消息发送者;资料缺失时可能为空
senderId、fromRoomId识别发送者及来源群,结合具体消息类型使用
cmd一级事件类型
msgType消息或事件子类型
msgUniqueIdentifier消息标识,不能跨账号直接全局去重
requestId事件标识;异步结果中用于关联原任务
seq按相应接口语义处理,不能当作所有事件的全局唯一键
常见 cmd 为:15000 普通消息、15500 系统消息、11016 账号状态或连接通知、20000 异步结果。完整字段见消息推送回调服务。
回调外层 code=0 是包装信息,不代表账号在线或异步任务成功。状态通知的 msgData.code 是原因码;异步任务的 msgData.status 才是相应任务的结果字段,不要混用。

25. 接收回调应该怎样响应?#

按以下顺序处理:
1.
校验请求来源、鉴权及必要字段。
2.
将事件可靠保存或写入持久队列。
3.
尽快直接返回 HTTP 200,响应正文可为空。
4.
后台异步执行 AI、文件下载、外部调用等耗时业务。
不要先确认成功,再把关键业务仅交给可能丢失的内存任务。不要用重定向代替接收确认,也不要求响应正文固定为 success。
当前默认投递机制为单次超时 15 秒、总共最多 3 次尝试,具体以部署配置为准;这些值不是应当耗尽的处理时间。网络错误和 5xx 可触发有限重试,4xx 属于接收端拒绝,不自动重试。不要依赖无限补发,也不要采用“超过 3 秒一定直接丢弃”的判断。

26. 如何避免重复处理回调?#

将接收记录与业务动作记录分开,按账号范围建立幂等控制:
场景建议关联范围
普通消息GUID、事件类型与相应消息标识
异步任务GUID 与原任务 requestId,同时记录任务状态变化
系统或状态事件按该事件的标识、类型及状态语义处理
不要只用 seq 或某个消息 ID 在全部账号中去重。同群不同接入账号收到同一消息可能是正常事件;同标识但内容或类型变化,也不能一律丢弃。
不要假定事件严格有序或只送一次。保留受控的原始事件用于核对,并对未知类型、缺失可选字段和新增字段做好兼容,避免拒绝整批回调。

27. 通过 API 发出的消息会再次回调吗?#

平台会对本设备 API 发送产生的部分回声进行过滤,但不能据此假定自发消息永远不会出现在回调或同步结果中。同群内其他接入账号收到该消息,仍可能正常推送。
业务系统仍需根据账号、消息来源及业务记录防重复、防自动回复循环。不要把是否收到回声当成唯一的发送成功判断。

28. 没收到消息或掉线回调,应该查什么?#

依次检查:
1.
Token 是否配置了正确的回调地址,设备是否归属该 Token。
2.
该地址能否从平台服务端访问,TLS 证书、DNS、防火墙及网关是否正常。
3.
回调鉴权是否匹配,是否接受 application/json,正式投递返回了什么 HTTP 状态。
4.
接收端是否误把 data 当成对象、将大整数解析损坏,或拒绝未知字段。
5.
账号状态、事件来源及事件是否实际产生,程序是否只接收部分 cmd/msgType。
6.
是否因耗时处理、队列失败、异常退出或去重范围错误而丢失业务处理。
账号状态通知使用 cmd=11016。结合 msgData.status、msgData.code、msgData.msg 和可选的 event 处理,status/code 缺失不能默认当作 0。RecoveryFailed 可能带失败原因和离线状态而没有原因码。
确认掉线后,暂停该账号写任务并保留原因;人工处理步骤见账号使用注意事项。原因缺失或回调未收到时,应结合状态查询和接收日志排查,不能猜测封禁原因。

六、文件、图片与异步任务#

29. 收到媒体回调后,要立即下载吗?#

不要在 Webhook 请求内同步下载。先可靠保存消息和文件参数,再由异步任务下载、转存或解析。
URL 来源必须能被平台服务端访问,并保持足够有效期。浏览器依靠登录态能打开的链接,不代表服务端也能下载;本地磁盘路径和 localhost 不能作为远程文件地址使用。

30. 文件地址能长期使用吗,CDN 转 URL 用在哪里?#

不要把返回地址视为永久存储承诺。有长期保存需求时,在授权范围内及时转存到自己的受控存储,并记录文件 ID、名称、大小、类型、归属账号、下载状态和内部地址。
拿到 CDN 或内部文件标识,需要生成可访问地址时,可按CDN 文件转 URL要求传入完整参数。文件解密参数属于敏感信息,不放入公开日志或工单。
文件大小、格式、链接有效期和超时限制分别按具体接口说明执行,不将一种上传或下载通路的限制套用于全部文件接口。

31. 异步接口返回成功,是否说明文件已处理完成?#

不说明。保存同步受理返回的 requestId,与后续 cmd=20000 结果关联。
对于提供 msgData.status 的文件任务,按 success/failed 判断,失败时读取 errMsg。下载成功可能主要返回 cloudUrl,不能要求每个成功结果都有非空 fileId。
应区分三个状态:任务被受理、回调已送达、任务已完成。回调外层成功或接收端返回 HTTP 200,都不能替代任务结果。
不同异步接口的失败通知能力不同。例如 /cloud/cdnBigFileUploadByUrlAsync 当前不保证失败时有回调。对迟迟未完成的任务设置“待核查”状态,并按接口支持方式查询或提交排查,不要直接重复创建任务。

32. msgType=20 是否表示大于 20 MB 的文件?#

不是。消息类型值不能用来推算文件大小。应读取实际文件大小及文件标识,按对应接口选择处理方式,并完整保留所需加密参数。

七、联系人、群与标签#

33. 联系人和历史消息如何同步?#

按接口的分页和游标语义同步,可靠处理当前批次后再保存进度:
接口游标处理
/contact/getWxContactList下一页使用返回的 currentSeq,结合 hasMore 继续
/msg/syncMsg下一次 msgSeq 使用上次返回的 travelSyncKey,结合 hasMore 处理
不要用页码、列表长度或最后一条消息 ID 代替游标。增加游标不推进检测,避免无限循环;回调与补拉结果也要做业务去重。
联系人状态按实际字段保存,区分内外部联系人;不要将“当前页未出现”直接当成删除或拉黑。是否支持可靠增量应按具体接口判断,不能把所有列表都当成增量流。可参考外部联系人与好友申请列表。

34. 外部群开发需要哪些能力?#

常见流程包括群列表、详情、成员同步、公告与二维码、成员邀请或移除、消息发送及群事件处理。
先确认账号状态、群类型、当前账号的成员身份和操作权限。群主或管理员变更、成员移除等写操作应有授权校验和操作记录;批量结果逐项核对。
成员变动接口不一定提供可靠增量游标。当前兼容实现存在返回成员快照且 ver 为空的情况,不能据此当成“本次没有成员变化”。应按实际快照或游标语义处理。

35. 标签适合哪些场景?#

标签可用于客户分层、客服分配、CRM 同步和运营筛选,具体读写能力以接口支持和账号权限为准。
业务系统应保留标签 ID 与所属账号或企业范围,避免只按名称匹配;批量变更保存逐项结果。不要将一个账号或企业获取的标签标识直接用于另一范围。

八、部署、权限与数据安全#

36. SaaS 与私有化部署有什么区别?#

方式主要区别接入方需关注
SaaS使用平台提供的服务地址凭证、回调可达性、授权额度及数据处理约定
私有化在约定环境部署服务网络、存储、证书、备份、访问控制及运维责任
实际提供的部署方式、能力和服务范围以开通约定为准。私有化不会自动满足所有安全或合规要求,也不会自动获得企业微信额外权限。

37. 哪些地方需要权限和安全控制?#

Token、回调密钥、文件解密参数和会话文件仅供获授权服务使用,日志展示时脱敏。
回调和 API 通信使用 HTTPS,接收端验证配置的鉴权信息。
消息发送、联系人变更、群操作、资料修改、朋友圈及文件导出设置权限和审计记录。
重要事件可靠保存,原始消息与附件限制访问,并按业务需要设置保存期限。
人员离职、系统停用或凭证疑似泄露时,及时复核权限、更新相关凭证并检查调用记录。
日志记录应足够定位问题,但不要将完整 Token、验证码、会话密文或客户敏感信息直接公开。运营侧的账号与数据使用要求见账号使用注意事项。

九、常见错误与上线检查#

38. 调用失败时,怎样快速定位?#

先核对完整地址及前缀、POST、JSON、WECOM-TOKEN、method、必填参数、GUID 归属,再检查实际业务返回。常见业务码可按以下方向处理:
code排查方向
40001/40002Token 无效、禁用或过期,核对凭证和授权状态
40005接口暂不支持,核对方法与版本
40006参数错误,核对必填字段、类型及范围
40007设备不存在或无权限,核对 GUID 与归属
40011设备离线或登录态异常,查看原因推送和恢复结果
40012/40013权限不足或目标不存在,核对账号权限及操作对象
50001/50002服务异常或超时,先区分只读查询与可能已执行的写操作
结合完整 msg/data 处理,不按中文文案完全相等来分支,也不能将回调中的状态原因码混入此表。
向技术支持提供:异常时间及所在时区、接口方法、GUID、requestId 或消息标识、脱敏请求、HTTP 状态、完整业务返回、耗时及已执行的排查步骤。回调问题附接收端状态码和错误日志;账号异常附原因推送及客户端提示。

39. 上线前至少验证哪些项目?#

已核对账号准入条件,并落实配套文档中的账号操作要求。
地址、鉴权、GUID 和目标对象正确,控制台与业务 API 的判断逻辑分开。
大整数不丢精度,分页游标可恢复,批量结果逐项处理。
扫码结束后停止扫码轮询,在线状态与异常原因可正确识别。
回调探测与真实业务事件都能接收,可靠保存后直接返回 HTTP 200。
回调可重复、乱序或包含未知字段,业务仍能正确处理。
写操作超时不会盲目重发,自动回复不会形成循环。
异步任务按 requestId 关联,迟迟无结果的任务可被发现和排查。
掉线可暂停对应账号的写任务,恢复后不会一次性倾倒积压任务。
凭证、日志、客户资料和附件有访问控制,已完成授权对象的端到端测试。

最后建议
企业微信 API 接入不要只关注“接口是否能调通”,更要关注账号在线状态、消息发送节奏、Webhook 幂等、异常重试、权限控制和日志审计。
生产环境建议先小范围验证,再逐步扩大账号数量和业务范围。
上一页
📖 常见业务与技术 FAQ
下一页
✅ 账号使用注意事项
Built with