天地男儿超哥 發表於 2021-6-10 15:39:00

微信公众号一次性订阅消息功能开发实践

<p><span style="color: rgba(13, 0, 22, 1)">&nbsp;&nbsp;&nbsp; &nbsp; 截止到2021年6月10日,微信公众号测试号是不支持“微信公众号一次性订阅消息”的开发,必须用正式的微信公众号测试,那如何在不影响正式的微信公众号运营的情况下来开发这个小功能呢,请看看笔者的实践。</span></p>
<p><strong>微信一次性订阅官方开发文档:</strong></p>
<p>https://developers.weixin.qq.com/doc/offiaccount/Message_Management/One-time_subscription_info.html</p>
<p><strong><span style="color: rgba(13, 0, 22, 1)">“微信公众号一次性订阅消息”&nbsp; 和&nbsp; “订阅通知”&nbsp; &nbsp;没有关系。。。。。</span></strong></p>
<p>见微信社区回答:https://developers.weixin.qq.com/community/develop/doc/0000c0c059c3880da4fbf23e756400?_at=1581956383850</p>
<p>&nbsp;</p>
<h3><span style="color: rgba(13, 0, 22, 1)">第一步:在微信公众平台后台开通微信公众号“一次性订阅”接口权限</span></h3>
<p>浏览器访问&nbsp;https://mp.weixin.qq.com/</p>
<p><img src="https://img-blog.csdnimg.cn/20210610143054533.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>扫码后进入管理页面,点击左侧菜单最下方的“接口权限”</p>
<p><img src="https://img-blog.csdnimg.cn/20210610153930952.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>找到“一次性订阅消息“, 如果没有开通的话,右边会显示“开通”按钮,按提示申请开通即可,如果已开通则右边会显示“查看模板id”&nbsp; &nbsp;</p>
<p><img src="https://img-blog.csdnimg.cn/20210610143301691.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>&nbsp;</p>
<h3><span style="color: rgba(13, 0, 22, 1)">第二步:测试用户同意授权</span></h3>
<p>参考上面提到的官方开发文档的接口说明构造一个URL</p>
<p>https://mp.weixin.qq.com/mp/subscribemsg?action=get_confirm&amp;appid=&lt;appid&gt;&amp;scene=&lt;scene&gt;&amp;template_id=&lt;templateId&gt;&amp;redirect_url=&lt;redirect_url&gt;&amp;reserved=test#wechat_redirect</p>
<p>&nbsp;</p>
<p>参数说明</p>
<p><strong>&lt;appid&gt;</strong></p>
<p><img src="https://img-blog.csdnimg.cn/20210610144554782.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p><strong>&lt;scene&gt;&nbsp;&nbsp;</strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0-10000的场景值,重定向时会传回,这个你自己定好了</p>
<p>&nbsp;</p>
<p><strong>&lt;templateId&gt;&nbsp;&nbsp;</strong></p>
<p><span style="color: rgba(254, 44, 36, 1)">注:这个模板id和订阅通知里的模板id没有关系,别弄混了,这个是在接口权限里查,如下图</span></p>
<p><img src="https://img-blog.csdnimg.cn/20210610144659587.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p><img src="https://img-blog.csdnimg.cn/20210610144831528.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p><strong>&lt;redirect_url&gt;&nbsp;&nbsp;</strong></p>
<p>授权后重定向的回调地址,请使用UrlEncode对链接进行处理。 注:要求redirect_url的域名要跟登记的业务域名一致,<strong><span style="color: rgba(254, 44, 36, 1)">且业务域名不能带路径</span></strong>。 业务域名需登录公众号,在设置-公众号设置-功能设置里面对业务域名设置。</p>
<p><img src="https://img-blog.csdnimg.cn/20210610145643907.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>&nbsp;</p>
<p><img src="https://img-blog.csdnimg.cn/20210610145733329.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>将构造好的这个URL可以用微信PC版发信息给公众号</p>
<p><img src="https://img-blog.csdnimg.cn/20210610150137882.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>然后在PC微信里点击或者在手机里点击,会出现如下界面</p>
<p><img src="https://img-blog.csdnimg.cn/20210610150714585.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>点击确认接收或取消,微信服务器就会回调你给的redirect_url</p>
<p>&nbsp;</p>
<h3><span style="color: rgba(13, 0, 22, 1)">第二步:调用</span><strong>API推送订阅模板消息给到授权微信用户</strong></h3>
<p>这个直接看官方接口文档https://developers.weixin.qq.com/doc/offiaccount/Message_Management/One-time_subscription_info.html</p>
<p><img src="https://img-blog.csdnimg.cn/20210610150937400.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p><strong>参数说明:</strong></p>
<p><strong>access_token</strong> : 令牌</p>
<p>可以这样获得 (两小时内有效)</p>
<p><img src="https://img-blog.csdnimg.cn/20210610152057882.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p><img src="https://img-blog.csdnimg.cn/20210610152211835.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p><img src="https://img-blog.csdnimg.cn/20210610152305375.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>&nbsp;</p>
<p><strong>&nbsp;touser :&nbsp; &nbsp;你要发送消息的微信用户的openid</strong></p>
<p>不知道的话,教你一个简单方法看</p>
<p>Chrome浏览器进入公众号后台打开“用户管理”</p>
<p><img src="https://img-blog.csdnimg.cn/20210610151215797.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>浏览器按F12进入开发者工具模式,选择某个微信用户右键“检查”</p>
<p><img src="https://img-blog.csdnimg.cn/20210610151525538.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p><img src="https://img-blog.csdnimg.cn/20210610151704223.png"></p>
<p>&nbsp;</p>
<p>笔者喜欢用curl做测试,以下是用curl模拟POST测试的示例(里面的数据是假数据,请读者自行替换)注:要用bash执行</p>
<pre><code class="language-bash">curl -X POST -H "Content-Type: application/json; charset=UTF-8"-d '{ "touser":"aaaabbbbcccdddddd",    "template_id":"1111222233334445555666", "url":"https://www.baidu.com", "scene":"1001", "title":"report","data":{    "content":{"value":"report arrived\nplease view\ntest","color":"blue"    }}}'https://api.weixin.qq.com/cgi-bin/message/template/subscribe?access_token=12323232323232323232322323232323232323645645654654645645654654654654654654654654654654656456456546456546546456</code></pre>
<p>下图就是收到通知的效果</p>
<p><img src="https://img-blog.csdnimg.cn/20210610152815760.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29tYWdl,size_16,color_FFFFFF,t_70"></p>
<p>怎么样,笔者全程没有去动过已有的公众号服务器,就达到了调试一次性订阅的作用</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/omage/p/15235133.html
頁: [1]
查看完整版本: 微信公众号一次性订阅消息功能开发实践