打开 PushMsg 管理后台,使用管理员 API Key 登录。该域名使用可信 HTTPS 证书。
管理员与业务应用
| 密钥 | 使用位置 | 权限 |
|---|---|---|
| 管理员 API Key | 管理控制台、/api/admin/* |
管理公众号、接入应用、消息和人工重试 |
| 每个系统的 API Key + API Secret | CRM 或其他调用系统服务端 | 在授权通道内向已绑定的 OpenID 推送,并查询自己的消息 |
控制台登录状态仅将管理员密钥保存在当前浏览器会话存储中。完成管理操作后,可使用“退出登录”清除会话。调用系统使用独立的 Key 和 Secret,不能访问管理接口。
配置公众号通道
在“公众号通道”中点击添加,填写通道标识、公众号名称、AppID、AppSecret,以及可选的回调 Token。
| 字段 | 说明 |
|---|---|
| 通道标识 id | 小写字母或数字开头,后续可包含小写字母、数字、下划线和短横线,最长 64 字符 |
| 名称 name | 最长 100 字符,便于识别公众号 |
| AppID | 目标公众号的 AppID |
| AppSecret | 新增时必填;加密保存,查询接口不返回其明文或密文 |
| 回调 Token | 可选,仅在使用本系统可选明文回调时配置 |
| 启用状态 | 停用会阻止该通道继续接收或处理新的发送任务 |
通道 ID 与 AppID 创建后不可修改;切换公众号身份应新增通道。修改已有通道时,AppSecret 和回调 Token 留空会保留原值。
当前已配置 xianbao 通道,对应“仙宝科技”公众号。微信接口 IP 白名单、模板消息权限等配置见 公众号准备。
创建业务接入应用
- 进入“接入应用”,点击创建。
- 填写应用名称,例如“CRM 信息推送”。
- 勾选允许使用的公众号通道,例如
xianbao。 - 创建后立即复制 API Key 和一次性展示的 API Secret,保存到对应业务系统服务端配置中。
- 在该系统的“接收人”管理中添加通道、OpenID 与接收人名称,并启用。
Key 用于识别调用系统,可在后台查看;Secret 仅在创建或轮换时返回,服务端保存摘要,之后无法查询原文。新增或编辑必须明确选择通道;空通道列表不授予任何权限。
调用系统每次请求须同时提供 X-API-Key 与 X-API-Secret。Key 也可通过 Authorization: Bearer 提供,此时 Secret 仍必填。旧版只有 Key 的系统须先在后台轮换凭据并配置接收人,再更新调用系统配置。
接收人隔离
每个调用系统维护独立的接收人白名单,授权按“系统 + 通道 + OpenID”精确匹配,OpenID 区分大小写。新系统没有接收人时不能发送。即使两个系统拥有同一公众号通道权限,也不能使用未绑定到自己的 OpenID。
- 选择要管理的调用系统,打开“接收人”。
- 选择该系统已获授权的公众号通道。
- 填写接收人名称与完整 OpenID,并提交添加。
- 不再需要接收时停用或删除该授权;以后如需恢复,可重新授权。
未绑定、停用或删除的接收人会返回 403 RECIPIENT_FORBIDDEN,不会入队。重复提交和队列真正发送前也会检查接收人权限;撤销后尚未开始发送的任务会被阻止。获取 OpenID、关注公众号或在 CRM 内绑定员工,不会自动添加此白名单。
编辑、停用与轮换凭据
编辑系统可修改名称和授权通道。移除通道后,该系统不能继续向该通道提交;已有接收人记录不代表仍有通道权限,需同时满足两项授权。
轮换会同时生成新的 Key 和 Secret,旧凭据立即失效。请在后台确认后复制新凭据并更新调用系统配置。轮换保留系统 ID、接收人、历史消息和幂等范围;同一系统的新凭据仍能查询该系统的历史消息。
停用应用后,该密钥将不能继续接入;队列中尚未发送的该应用任务也会被阻止。已经进入微信发送调用的请求无法撤销。
读取模板与接收人
“推送测试”页面可选择公众号、读取已有微信模板并生成字段。读取模板只查询配置;点击提交测试后才会进入正式队列并调用微信。
可通过“读取关注用户”分页读取该公众号的关注用户 OpenID,并由管理员选择接收人。也可让接收人在自己的微信中打开 OpenID 获取页面,获取后交给管理员,在对应调用系统下配置接收人。
关注用户 OpenID 属于目标公众号,使用时需核对通道与接收人。不同公众号下的同一微信账号通常具有不同 OpenID。
查看运行概览与消息记录
“运行概览”显示累计消息、等待处理、微信已接收和需要关注的任务数量。“消息记录”可按状态筛选,并分页查看调用方、公众号、尝试次数、微信消息 ID 和错误说明。
| 状态 | 管理操作 |
|---|---|
| PENDING / PROCESSING / RETRY | 观察队列处理情况,通过原任务跟踪 |
| SENT | 微信接口已接受,按需由接收人在微信确认 |
| FAILED | 根据错误说明修正模板、OpenID、账号权限或其他配置 |
| UNKNOWN | 核实微信实际发送情况后,再决定是否人工重试 |
人工重试
控制台仅允许人工重试 FAILED 或 UNKNOWN 任务。重试会将原任务重新置为 PENDING,清空错误、重置尝试次数,并继续使用原任务记录。
UNKNOWN 表示发送可能已发生。人工重试可能重复通知,控制台会提示先确认实际情况。详细的自动重试与超时恢复规则见 运行维护。
管理接口速查
下列接口使用管理员密钥,管理后台的生产前缀为 https://pmsg.admin.xianboss.com/admin,例如 https://pmsg.admin.xianboss.com/admin/api/admin/clients。也可通过原 IP 入口 https://14.103.113.229 调用,下表路径不含管理后台的 /admin 挂载前缀。
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/admin/overview |
统计 |
| GET / POST | /api/admin/channels |
查询或新增公众号通道 |
| PUT | /api/admin/channels/{id} |
更新通道名称、凭据及状态 |
| GET | /api/admin/channels/{id}/templates |
读取微信模板 |
| GET | /api/admin/channels/{id}/followers?nextOpenId= |
分页读取关注用户 OpenID |
| GET / POST | /api/admin/clients |
查询或新增业务应用 |
| PUT | /api/admin/clients/{id} |
{"name":"CRM","channelIds":["xianbao"]} 修改名称和通道权限 |
| PATCH | /api/admin/clients/{id} |
{"enabled":false} 停用业务应用 |
| POST | /api/admin/clients/{id}/credentials/rotate |
轮换 Key 和 Secret,旧凭据立即失效 |
| GET / POST | /api/admin/clients/{id}/recipients |
查询或添加该系统的接收人 |
| PATCH | /api/admin/clients/{id}/recipients/{recipientId} |
{"enabled":false} 停用接收人授权 |
| DELETE | /api/admin/clients/{id}/recipients/{recipientId} |
删除接收人授权 |
| GET | /api/admin/messages?status=FAILED&page=0&size=20 |
筛选和分页查询消息 |
| GET | /api/admin/messages/{id} |
查询指定消息 |
| POST | /api/admin/messages |
管理员提交消息 |
| POST | /api/admin/messages/{id}/retry |
人工重试失败或不确定任务 |
创建通道、业务应用及消息所需的业务校验,仍由服务端执行。API 错误处理见 故障排查。
创建系统与接收人
创建系统请求:
{"name":"CRM 信息推送","channelIds":["xianbao"]}
首次创建或轮换凭据响应示例;Secret 仅在此时返回:
{"id":"CLIENT_ID","name":"CRM 信息推送","apiKey":"YOUR_CRM_API_KEY","apiSecret":"YOUR_CRM_API_SECRET"}
GET /api/admin/clients 返回系统的 id、name、enabled、channelIds、createdAt、apiKey、credentialReady 和 recipientCount。旧系统尚未轮换时 apiKey 可能为 null,credentialReady 表示双凭据是否已配置,recipientCount 为已启用接收人数。接口不返回 Secret 或其摘要。
添加接收人请求:
{"channelId":"xianbao","openId":"YOUR_OPENID","name":"CRM 负责人","enabled":true}
接收人响应包含 id、clientId、channelId、openId、name、enabled、createdAt。同一系统、同一通道重复添加相同 OpenID 返回 409;接收人启停与删除同时按系统 ID 和接收人 ID 定位,不能修改其他系统的记录。