微信公众号对接指南
UMS 目前支持微信公众号的模板消息、订阅通知,这 2 种消息仅服务号类型的公众号才支持,因此企业需要首先申请一个服务号。
注:图文消息类型在后续计划中,敬请期待。
申请服务号
2、选择服务号类型,不同的公众号拥有不同的能力,详情请见:公众号接口权限说明,这里我们要接入模板消息、订阅通知,则需要选择服务号。
3、激活邮箱
注意,每个邮箱仅能申请一种帐号,此处填写未注册订阅号/服务号/企业号/小程序/open帐号/个人微信号的邮箱。
4、邮箱激活后,需要选择注册地,并再次选择账号类型
5、注册服务号需要登记较为详细的信息,所需信息具体详见官方说明,如何选择主体类型详见官方说明
如果资料未能准备好,可以在准备好后,使用已激活的邮箱&密码登录再进行登记。
审核通过后,即可使用模板消息、订阅通知等功能。
基本配置与鉴权
使用 AppID 和秘钥
1、公众平台官网登录之后,在左侧菜单栏最下方,找到“开发”-“基本配置”页面,在该页面可以获取到 AppID 和 AppSecret 信息,将信息配置到 UMS 微信公众号通道信息中去 2、配置 IP 白名单,请将 UMS 系统的 IP 地址配置到 IP 白名单中
- 119.3.213.183
3、服务器配置,为了检测微信公众号消息的真实送达状态,需要将 UMS 的回调地址配置在此:https://ums-callback.jiguang.cn/v1/wechatoa/callback
使用第三方平台扫码授权
1、公有云统一使用「极光统一消息系统」这个第三方平台供应商,在创建通道时操作扫码授权,需要「公众号的管理员」才能扫码。使用本方式创建通道时无需配置回调地址。
- 如果企业的业务系统已经自行接入了微信公众号/小程序业务,希望 UMS 在使用微信公众号/小程序时不要与业务系统产生冲突(token、获取统计数据),则可以在创建通道时,选择使用扫码授权的方式进行。
2、私有云客户可配置企业自己创建的第三方平台进行授权管理,操作步骤如下
- 登陆微信开放平台
- 在管理中心-第三方平台,点击创建第三方平台,选择平台类型为「平台型服务商」,其他信息按企业实际情况填写即可,注意微信公众号和小程序共用 1 个第三方平台进行管理。
- 创建完成后可提交审核
- 在详情中获得 APPID 和 AppSecret,需要在配置文件中对应设置为字段 wechattpp_component_app_id 和 wechattpp_component_app_secret 的值
- 在详情-开发信息-权限集中配置权限集,关于权限集的官方解释说明请阅读文档
权限集ID | 描述 | 备注 |
---|---|---|
7 | 群发与通知 | 必须 |
8 | 微信卡券 | 现阶段不需要,为了后续功能拓展建议先配置 |
11 | 素材管理 | 现阶段不需要,为了后续功能拓展建议先配置 |
89 | 服务号订阅通知 | 必须 |
- 在详情-开发信息-开发资料中配置相关信息
字段 | 取值 | 备注 |
---|---|---|
授权事件接收配置 | UMS系统域名/自定义一个后缀路径 | 1、UMS系统的域名需要外网可访问 2、在nginx配置该地址转发至wechattpp服务 |
消息与事件接收配置 | UMS系统域名/自定义后缀路径 | 1、自定义后缀路径需包含/$APPID$ |
消息校验Token | 自定义生成 | 需要与配置文件中的wechattpp_encoding_token值保持一致 |
消息加解密Key | 自定义生成 | 需要与配置文件中的wechattpp_encoding_aes_key值保持一致 |
白名单IP地址列表 | UMS系统外网IP | 1、仅当开发者IP地址在该列表中时,才被允许调用相关接口 2、若配置错误,在 wechattpp 模块将会打印错误日志,code 为61004,该日志中有实际请求的 IP,可更换为该 IP |
授权测试公众号/小程序列表 | 公众号或小程序的原始ID | 1、在公众平台的设置页查询该ID 2、在全网发布之前,仅列表内公众号或小程序才可进行授权 |
- 开发资料配置完成后可提交全网发布,全网发布后可接受任意公众号的授权,如果企业的公众号+小程序少于10个,也可以继续使用授权列表配置
启用模板消息
在功能->添加功能插件处看到申请模板消息功能的入口,详情查看模板消息的官方介绍说明
添加模板消息能力后,在模板消息菜单页,可以在模板库添加自己所需要的模板,总共可以申请 25 个模板,如果没有找到合适的模板,也可以申请专门的模板,每月可申请 3 次。
注意,使用模板消息,需要遵循微信官方的运营规范
在微信公众号成功添加模板后,在 UMS 系统中,点击刷新列表即可获取到模板列表,从而在发送消息时使用它
启用订阅通知
在添加新的功能页面看到申请订阅通知的入口,详情查看订阅通知的官方介绍说明
添加订阅通知的能力后,在广告与服务->订阅通知菜单页,可以在公共模板库添加自己所需要的模板,总共可以申请 50 个模板,如果没有找到合适的模板,也可以申请专门的模板,每月可申请 10 次。
在微信公众号成功添加模板后,在 UMS 系统中,点击刷新列表即可获取到模板列表,从而在发送消息时使用它
除了在公众号后台申请模板外,UMS 集成了公众号申请模板的能力,在通道设置创建了微信公众号通道,并授权给了渠道后,企业可以直接在渠道-模板管理-微信公众号-公共模板库中选用模板。
上传 openID
1、在微信公众号中将企业的账号与微信用户进行绑定,需要通过网页授权,获取到 openID。
- 一般的操作是:在用户关注后,引导其登录绑定,点击跳转到企业的账号登录页面,用户在该页面进行登录后,调用微信官方接口获取 openID,即能获得 openID 与账号的关联关系。
2、将该绑定关系上传至 UMS 用户体系中。
3、假设在 UMS 创建通道时设置的通道编码为:wechatoa123,则上传信息至 UMS 平台的示例如下:
- 在 UMS 控制台上点击文件上传,微信公众号的 openID 在 UMS 中的命名是:wechatoa_openid,Excel 内容参考:
- 调用 rest API 上传的 JSON 示例如下,详情请参考 rest API - 用户管理[{ "userid": "zhangsan", "set":{ "wechatoa123":"oRcf0w_yHT-1F_pioV1cHbf7ghFI" } }]
[{ "userid": "zhangsan", "set":{ "wechatoa123":"oRcf0w_yHT-1F_pioV1cHbf7ghFI" } }]
此代码块在浮窗中显示
简要测试方案
1、如果企业没有服务号,测试阶段可以访问官方地址申请微信公众平台接口测试帐号,暂不支持测试订阅通知
2、如果企业尚未开发账号绑定功能,有 2 种方式快速获取测试微信的 openID
- 通过获取用户列表-关注公众号-再次获取用户列表的方式,这之间新增的 ID 即测试微信的 openID。极光提供了一个程序可协助开发者获取用户列表,下载 pushtools 工具( Linux 版本或 Mac 版本),在控制台输入如下命令,填写上具体的 AppID 和 AppSecret 即可
./pushtool wechatoa -appid xxx -secret xxx
- 登录公众号后台,在左侧菜单管理-用户管理,找到测试微信账号,点击名称,在新打开的聊天页面里,复制地址栏,地址栏里有一个参数 tofakeid=o_xxxxxxx,这个 tofakeid 后面的值,就是该账号的 openID
订阅通知特别说明
与模板消息(关注后即可发送)不同的是,订阅通知需要用户主动点击了订阅某一个模板,才能发送消息,否则即便获得了 openID 也无法向该用户发送消息成功。
- 简单测试的操作是:在微信公众号后台发送一条图文消息,在图文消息中带上订阅信息
此外,还可以在网页等场景通过微信开放的标签能力设置订阅通知功能,供用户主动订阅。网页端设置订阅通知的接口是wx-open-subscribe
和小程序一样,用户点击订阅后将拉起订阅弹框提示,如果用户选择了“总是保持以上选择,不再询问”,之后用户再次点击订阅将不需要授权。
点击订阅按钮一次只能发送一次消息,如果有多条消息需要发送,企业需要想办法在各项操作中调用订阅接口来积累可发消息的次数。
发送消息
配置成功后即可开始使用官网控制台发送消息,阅读控制台操作指南
还可以调用 API 进行发送,阅读 REST API 文档