订阅通知是一个用户主动订阅、服务号按需下发的通知能力。使用过程请遵守《微信公众平台服务协议》《微信公众平台运营规范》。 用户在前述场景主动订阅后,服务号可通过接口向用户发送订阅通知,如信用卡动账提醒、物流到货通知等。订阅通知分为一次性订阅和长期订阅,一次性订阅是指用户订阅一次,服务号可不限时间地下发一条对应的订阅通知;长期订阅是指用户订阅一次,服务号可长期多次下发通知,长期订阅通知仅向政务民生、医疗等公共服务领域开放。
微信订阅消息和微信模版消息的区别在于模版消息可以无视用户的主观意识,直接发给用户;而订阅消息则必须用户同意系统才能发给用户。这样避免了给用户带来的骚扰。
因为微信有打算使用订阅消息来取代模版消息,所以知识付费新增了订阅消息功能,知识付费系统可以选择使用模版消息还是订阅消息。下面我们就来看看知识付费是如何加订阅消息功能的。
通过微信文档,我们可以看到微信公众号的订阅消息是通过wx-open-subscribe标签来调起选择的。如下事例:

<wx-open-subscrib template="TenvU22BA1jCp4YHfYEpRuESXYReQyDuhs4vbdWA99I" id="subscribe-btn"><script type="text/wxtag-template" slot="style"><style>.subscribe-btn {color: #fff;background-color: #07c160;}</style></script><script type="text/wxtag-template"><button class="subscribe-btn">一次性模版消息订阅              </button></script>
</wx-open-subscribe>
<script>
var btn = document.getElementById('subscribe-btn');
btn.addEventListener('success', function (e) {            console.log('success', e.detail);});
btn.addEventListener('error',function (e) {             console.log('fail', e.detail);
});
</script>

根据事例我们可以了解使用wx-open-subscribe标签给template属性传入你需要弹出的订阅消息模板ID即可,多个以英文逗号分隔。
知识付费是如何实现的呢?
首先是前端显示,在知识付费调起支付,选择微信支付然后调起微信订阅消息的弹窗,项目根目录中public/wap/first/zsff/components/payment下的index.html中我们加入订阅消息的标签,传入需要的模板ID。

<wx-open-subscribev-if="isWechat && templateId":template="templateId"@success="onSuccess"@error="onError"
><script type="text/wxtag-template" slot="style"><style>button {display: block;width: 100%;height: 40px;border-radius: 20px;border: none;background-color: #2c8eff;font-family: inherit;font-weight: normal;font-size: 14px;color: #fff;}</style></script><script type="text/wxtag-template"><button>立即支付</button></script>
</wx-open-subscribe>
 用户选择完成后执行订单功能,后台按照用户的选择结果发送相应的订阅消息。知识付费根目录下extend/service中的RoutineTemplateService类中加有关于微信公众号订阅消息的全部接口,sendTemplate方法就是给用户发送订阅消息的方法,通过这个方法我们可以发送各种订阅消息。

知识付费根目录application\wap\model\routine中的RoutineTemplate类里是各个订阅消息的发送方法。如下是专题购买成功发送的订阅消息,其中$data中的所有索引要和微信公众号平台中加的订阅消息内容一致。

$data['character_string1']['value'] =  $orderId;
$data['amount3']['value'] =  $order['pay_price'];
$data['time2']['value'] =  date('Y-m-d H:i:s',time());
$data['thing6']['value'] =  '您购买的专题已支付成功!';
RoutineTemplate::sendOrderSuccess($data,$order['uid'],$site_url . Url::build('wap/special/grade_list'));

这样我们就实现了微信订阅消息功能了。

如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star: http://github.crmeb.net/u/defu 不胜感激 !

知识付费对接微信公众号订阅消息相关推荐

  1. PHP 对接微信公众号订阅消息详细教程

    订阅通知是一个用户主动订阅.服务号按需下发的通知能力.使用过程请遵守<微信公众平台服务协议><微信公众平台运营规范>. 用户在前述场景主动订阅后,服务号可通过接口向用户发送订阅 ...

  2. Java对接微信公众号模板消息推送(架包WxJava)

    内容有点多,请耐心! 最近公司的有这个业务需求,又很凑巧让我来完成: 首先想要对接,先要一个公众号,再就是开发文档了:https://developers.weixin.qq.com/doc/offi ...

  3. vue开发微信公众号订阅消息踩坑记录

    今天做了一个微信公众号的网页开发, 使用的是vue做的开发,没错,就是微信公众号的开发,这都2021年了, 还有人有开发微信公众号的需求,我也是晕了, 微信公众号是我开发中感觉,最难调试的开发工作,没 ...

  4. Java对接微信公众号模板消息推送

    最近公司的有这个业务需求,又很凑巧让我来完成: 首先想要对接,先要一个公众号,再就是开发文档了:https://developers.weixin.qq.com/doc/offiaccount/Get ...

  5. JAVA对接微信公众号(服务号、订阅号)实现模板消息推送功能

    最近做了个需求要求对接微信公众号,使用模板进行消息推送,今天抽时间总结一下相关的逻辑. 大概逻辑分为四个步骤: 获取微信调用接口凭证access_token. 获取微信模板列表. 使用模板进行消息推送 ...

  6. 微信公众号订阅号开发的学习(二):获取用户发送的消息、简单的自动回复、自定义菜单

    获取用户发送的消息 基础 微信服务器会发送两种类型的消息给开发者服务器. get请求 验证服务器的有效性 post请求 微信服务器会将用户发送的数据转发到开发者服务器上 实现 基于微信公众号订阅号开发 ...

  7. 微信小程序——订阅消息与微信公众号模板消息

    订阅消息 一次性订阅消息 某个按钮(并且只能是用户自己就手动点击的)操作调起来这个允许授权弹窗,允许通知之后也只能发送一次消息.即便点上[总是保持一上选择,不再询问]也只是在下次点击同一个按钮时默认允 ...

  8. laravel+easywechat对接微信公众号自动回复图文消息

    laravel+easywechat对接微信公众号自动回复图文消息 图文回复消息创建 对接数据库根据关键词返回图文信息 前面我们对接配置了微信公众号,laravel5.4 对接微信公众号使用larav ...

  9. 客服系统对接微信公众号-访客在聊天界面扫码-临时访客绑定公众号OpenID可接收客服回复消息通知...

    访客在线咨询有以下几个问题: 1. 访客打开聊天窗口,一般情况下都是临时访客,只存在于当前浏览器. 2. 浏览器清理缓存,或者换一个浏览器,访客ID会重新生成就会变成一个新访客. 3. 访客咨询后,关 ...

最新文章

  1. 活着不易,5G时代终端厂商的路在何方?
  2. Java实用教程笔记 泛型与集合框架
  3. 压缩比13为什么建议用92的油_92号和95号汽油有什么区别,可以混着用吗?
  4. 基于visual Studio2013解决算法导论之007优先队列(堆实现)
  5. 冒泡排序java代码_数据结构与算法—冒泡排序(Java实现)
  6. proc编译手册_Expect 手册 中文版
  7. 阿里云设置域名解析到主机ip
  8. android 高质量游戏,你玩过几款?2013年度十大安卓热门游戏大盘点
  9. 哪些手机搭载鸿蒙,鸿蒙2.0搭载手机吗-有什么功能
  10. php中NULL、false、0、 有何区别?
  11. 谈谈Java的try..catch...
  12. Python命令行程序项目自动化GUI显示操作神器Gooey实践
  13. 1.maven下仅shiro框架对shiro的测试使用
  14. Canvas 实现小程序动画
  15. XP-在恢复时返回到欢迎屏幕
  16. 如何使用JDK提供的帮助文档
  17. 专业测评:5款热门的免费报表软件
  18. ps显示暂存盘已满如何解决?解决photoshop暂存盘已满的五种方法!
  19. 广和通率先启动基于联发科技 T830 5G平台的5G模组开发,加速全球运营商5G FWA部署
  20. Spring之声明式事务控制(九)

热门文章

  1. 80老翁谈人生(168):北京大学欠老翁的情,欠老翁的债
  2. 20135203齐岳 信息安全系统设计基础第五周学习总结
  3. arm服务器安装docker及docker-compose
  4. 乍得“随军”记 ——写在结婚一周年
  5. InstanceNorm1d
  6. Word2010入门
  7. markdown语法简明教程(一)
  8. Ubuntu下载功能包时出现:检验数字签名时出错,此仓库未被更新,所以仍然使用此前的索引文件的解决办法
  9. [hadoop那些事]hadoop及其组件资源 115/百度云
  10. 程序员在十年后还会有现在的收入吗?