PUSHMSG DOCUMENTATION

获取与绑定 OpenID

通过微信网页授权获取接收人标识,并与 CRM 用户建立业务绑定。

更新 2026-10-263 分钟阅读

OpenID 标识某个微信用户在指定公众号下的身份。CRM 发送通知时,openId 是通知接收人,例如跟进负责人或管理人员的微信身份;customerName 等字段则是 CRM 中的客户资料。

在微信中获取

  1. 使用希望接收通知的微信账号,打开获取我的 OpenID。
  2. 核对页面展示的公众号名称。
  3. 点击“获取我的 OpenID”,微信授权完成后自动返回页面。
  4. 点击“复制 OpenID”,将该值交给 CRM 管理员或保存到对应员工账号的配置中。
https://openid.xianboss.com/?channel=xianbao

普通浏览器会显示“请在微信内打开”的引导。登录某个网站或微信网页版,不等于在微信内完成该公众号网页授权。切换微信账号后,请再次点击获取,避免沿用此前会话中显示的身份。

在 CRM 中使用

CRM 可以把员工账号与其 OpenID 关联,再根据客户负责人选择通知接收人。该关联由 CRM 保存;PushMsg 接收的是已经确定的 openId,不会解析 CRM 内部的员工 ID。

{
  "requestId": "crm-followup-EVENT001",
  "openId": "YOUR_RECEIVER_OPENID",
  "customerName": "测试客户",
  "customerType": "潜在客户",
  "customerSource": "CRM录入",
  "customerPhone": "13800000000",
  "markedAt": "2026-10-26 11:00"
}

提交地址和字段限制见CRM 推送接口。OpenID 不同于 API Key:前者指定接收人,Key + Secret 证明调用系统身份。管理员还需在该系统下为对应通道添加并启用此 OpenID;获取 OpenID 或仅在 CRM 内绑定账号不会自动授予 PushMsg 推送权限。

获取流程的边界

页面使用 snsapi_base 获取 OpenID,不读取微信密码、聊天记录或通讯录。获取 OpenID 本身不代表用户已关注公众号,也不等于获得所有消息类型的发送资格。

普通模板消息和客服文本分别由微信校验其接收条件。网页授权不能代替客服消息所需的用户互动;一次性订阅等能力还需要其各自的授权流程。

公众号与服务端配置

配置 当前值或要求
网页授权域名 openid.xianboss.com
服务端公开地址 PUSHMSG_PUBLIC_BASE_URL=https://openid.xianboss.com
页面目录 /www/wwwroot/openid.xianboss.com
授权后端 现有 PushMsg Java 服务,经 Nginx 反向代理
访问鉴权 页面不要求管理员密钥或业务 API Key

公开地址必须是 HTTPS 域名原点,不接受 IP、端口、路径或查询参数。域名与公众号后台配置应一致,域名验证文件按平台要求放置。配置步骤见微信公众号配置。

会话与有效期

  • 授权状态使用随机值,绑定当前浏览器会话和公众号,10 分钟内一次性使用。
  • 回调在换取 OpenID 前消费状态,重复或伪造回调会被拒绝。
  • 成功获取后轮换会话 ID,结果保存在当前浏览器对应的服务端会话中,15 分钟过期。
  • Cookie 使用 HttpOnly、Secure、SameSite=Lax;授权成功后跳转到不含授权 code 或 OpenID 的页面地址。
  • 页面仅展示当前会话的结果,公开查询接口不提供其他用户的 OpenID 列表。

服务重启或会话过期后,重新点击获取即可。不要把页面中复制的 OpenID 当作可跨公众号使用的通用微信账号。

常见提示

提示 处理方式
请在微信内打开 将链接发到微信聊天中,从微信中打开
等待配置网页授权域名 检查 PUSHMSG_PUBLIC_BASE_URL 与公众号网页授权域名
授权会话已失效 返回页面,重新点击获取,不重复刷新旧回调链接
授权域名不一致 检查公众号后台所填域名是否与实际回调域名一致
页面已获取,但推送失败 查看消息的 lastError,按微信消息接口的错误码处理

更多状态与错误处理见问题排查。

PushMsg 文档内容以当前部署的接口与配置为准。

输入关键词搜索全部文档。