1. 为什么你的H5需要微信订阅通知?
如果你正在开发一个H5网页,无论是活动预约、订单状态提醒,还是资讯推送,你肯定遇到过这个问题:用户离开页面后,如何再次触达他们?传统的短信成本高,App推送又要求用户下载应用,而微信服务号的模板消息,现在也迎来了它的“升级版”——订阅通知。
简单来说,微信订阅通知就是让用户主动授权,允许你的服务号在特定场景下给他发送消息。这比过去的模板消息更强调用户的知情权和选择权,体验也更好。想象一下,用户在你的H5页面预约了一场直播,他点击“订阅开播提醒”按钮,授权后,等直播快开始时,微信里就会准时收到一条服务通知,点击就能跳转回来。这个流程,就是通过“开放标签”在你的H5网页里实现的。
我刚开始接触时也犯嘀咕,觉得又要配置公众号,又要搞前端标签,会不会很麻烦?实测下来,只要权限配置对了,核心代码也就那么几行,真正花时间的往往是前期准备和踩坑调试。这篇文章,我就把自己从零开始接入、调试到上线的完整过程,以及那些官方文档里没细说、但实际开发中一定会遇到的“坑”,给你掰开揉碎了讲清楚。无论你是前端还是后端,只要负责对接,看完就能上手。
2. 接入前,你必须准备好的三样东西
别急着写代码,磨刀不误砍柴工。接入微信订阅通知,有三个前提条件缺一不可,少一个都会导致后面的步骤全部失败。
2.1 一个已认证的服务号
这是最基础的门槛。个人订阅号、未认证的服务号都无法使用订阅通知功能。你需要登录微信公众平台,确保你的公众号类型是“服务号”,并且已经完成了微信认证(每年需要交300元认证费)。这个认证状态,决定了你能否在后台看到“订阅通知”的菜单。
2.2 配置JS接口安全域名
这是很多新手最容易栽跟头的地方。你的H5网页必须部署在已经配置到公众号后台“JS接口安全域名”下的域名里。简单理解,就是微信只允许你指定的几个域名下的页面调用它的JS-SDK,包括我们后面要用的开放标签。
怎么配置?进入公众号后台 -> 设置与开发 -> 公众号设置 -> 功能设置 -> “JS接口安全域名”。点击“设置”,按照提示填写你的网页所在域名(比如 www.yourdomain.com),不需要带 http:// 或 https://,也不要加端口号。一个公众号最多可以设置3个安全域名。配置完成后,记得把你含有订阅按钮的H5页面,放到这个域名下访问测试。本地用 localhost 或 127.0.0.1 开发是调不通的,必须用配置过的域名,你可以通过修改本地hosts文件进行域名映射来调试。
2.3 申请并创建订阅消息模板
模板是消息的“壳子”,规定了你可以发什么内容。在公众号后台,找到“订阅通知”功能(如果没看到,说明账号权限或类型不对)。
- 申请模板:点击“公共模板库”,这里有很多微信官方预设的模板,比如“预约成功通知”、“订单状态更新”。找到和你业务相关的,点击“选用”。如果找不到完全合适的,可以选一个相近的,因为关键信息可以通过“关键词”来填充。
- 编辑模板:选用后,进入“我的模板”列表,你可以看到模板的标题和内容。内容里用
{ {thing.DATA}}、{ {time.DATA}}这样的占位符表示变量。你需要记录下这个模板的template_id(模板ID),后面写代码时要用到。一个模板可以被多次使用,给不同用户发送不同内容。
这里有个小经验:模板的标题和关键词一旦提交,就无法修改,所以申请前最好想清楚。关键词的语义(比如“事物”、“时间”、“号码”)是固定的,你只能改变它展示的值。
3. 核心四步:从前端按钮到后端接收
准备工作做完,我们进入实战环节。整个过程可以清晰地分为四步:配置注入、渲染按钮、处理订阅事件、接收状态推送。
3.1 第一步:注入配置,申请“门票”(wx.config)
这是最关键的一步,相当于告诉微信:“我这个页面要使用开放标签了,请给我权限。” 通过 wx.config 接口实现。
wx.config({
debug: true, // 调试模式,开启后会在页面alert错误信息。上线时务必改为 false
appId: '你的服务号AppID', // 必填,公众号的唯一标识
timestamp: 生成的时间戳, // 必填,生成签名的时间戳
nonceStr: '生成的随机字符串', // 必填,生成签名的随机串
signature: '计算出的签名', // 必填,签名
jsApiList: ['che


1891

被折叠的 条评论
为什么被折叠?



