注:模板消息没了。

正常开发肯定需要前后端配合,此处都在小程序里写了

参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

订阅消息是个很好的功能,但是现在被不良商家用烂了,特别是拼多多,有毒。

目录

一、获取模板ID

二、获取权限(提示用户订阅)

三、消息推送

1、获取openid

2、获取access_token

3、发送


小程序消息推送首先需要用户自主订阅,分为一次性订阅消息长期订阅消息,长期订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放。

一次性订阅消息很麻烦,用户授权一次发一次,再发就提示invalid。

整体流程就是先在小程序后台配置模板消息,获取到用户订阅后在代码里给模板填充字段,然后发送。

主要分三步走:

一、获取模板ID

添加模板之后就可以得到了。

需要做的就是填充详细内容那些字段。

二、获取权限(提示用户订阅)

wx.requestSubscribeMessage({tmplIds: ['模板ID'],success (res) { console.log("订阅成功:"+JSON.stringify(res))},fail(res){console.log("订阅失败:"+JSON.stringify(res))}})
//注意把模板ID换为自己的

tmplIds是模板消息id的集合,最多三条,而且一次性订阅消息和长期订阅消息是不能放在一起的,还有,模板消息的标题也是不能相同的。

效果是这样的:

三、消息推送

消息推送有两个条件:有openid和access_token,正常开发肯定是需要这个的,一定会有,这里演示用。

1、获取openid

//获取openidwx.login({success: res => {//获取openidthis.getOpenID(res.code)}})getOpenID: function(code){wx.request({url: 'https://api.weixin.qq.com/sns/jscode2session?appid=AppID&secret=Appsecret&js_code='+code+'&grant_type=authorization_code',method:'GET',success(res){getApp().globalData.oopenidi = res.data.openid;console.log("获取openid成功:"+res.data.openid)}})}//注意把AppID和Appsecret换为自己的

2、获取access_token

//获取access_tokenwx.request({url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=AppID&secret=Appsecret',method:'GET',success(res){getApp().globalData.access_token = res.data.access_token;console.log("获取access_token成功:"+res.data.access_token)}})
//注意把AppID和Appsecret换为自己的

3、发送

这里其实就是对模板消息的字段进行填充。

touser就是openid

page是用户点击推送消息的时候跳转的页面,但是仅限当前小程序。

这个字段有或没有在页面是有区别的。如果没有,下方的进入小程序查看是没有的。

最重要的就是data,这里面就是对模板消息字段的填充,格式也是非常简单,和日常用的一样。

     wx.request({url: getApp().globalData.messageurl+getApp().globalData.access_token,method:'POST',data:{access_token:getApp().globalData.access_token,touser:getApp().globalData.oopenidi,template_id:'模板ID',page:'pages/index/index',data:{"character_string2": {"value": "370406199393939939"},"name1":{"value":"李三"},"thing6":{"value":"西药"},"thing3":{"value":"医保门诊"},"amount5":{"value":"20.00"}}},success(res){console.log(JSON.stringify(res))},fail(res){console.log(JSON.stringify(res))}})

这最后一步看似简单,但是搞不好就会报个错,我看网上很多人都会报invalid openid 或者invalid access_token,实际上并不是很难的bug,只是不够细心导致的。

微信小程序消息推送(订阅消息原模板消息)开发流程相关推荐

  1. 微信小程序自动推送当天天气情况Java版

    针对网上小程序推送天气消息进行二次优化与细节调整,更快速与方便的进行完成自己功能的开发 注意全文是在别人代码基础之上做的二次优化 教程开始: 1.注册微信测试账号 第二步: 彩虹屁平台注册 拉代码 修 ...

  2. 微信小程序点击发送短信验证(60秒倒计时)

    微信小程序点击发送短信验证(60秒倒计时) /*** 执行计时,60s后可以重新发送短信验证码*/countdown: function() {var nsecond = 60;var that = ...

  3. 写在微信小程序上线之夜,我想对移动开发人员说别慌先玩玩AR压压惊!

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/54296650 本文出自[DylanAndroid的博客] 写在微信小程序上线之 ...

  4. 【微信小程序】1、SpringBoot整合WxJava开启消息推送

    接入微信小程序消息推送服务,可以3种方式选择其一: 1.开发者服务器接收消息推送 2.云函数接收消息推送 3.微信云托管服务接收消息推送 开发者服务器接收消息推送,开发者需要按照如下步骤完成: 1.填 ...

  5. 微信小程序——服务通知,发送订阅消息

    一.什么是消息推送 二.整体效果 三.实现步骤 1 小程序开通订阅消息 2 postApi测试效果 三.uniapp配置 这里有个需要特别注意的点,我们要给用户发送消息,就必须引导用户授权,如下 因为 ...

  6. 微信小程序实现点击订阅消息在特定的时间点发送

    前言 首先这个下发订阅消息,是可以后端处理的:因此关于后端的操作,我就不讲了,后端定时触发这个下发操作可以通过定时器执行(后端处理相对简单灵活).但这里我们主要说云函数如何实现这个定操 实现 「小程序 ...

  7. node.js解析微信消息推送xml格式加密的消息

    之前写过一个解密json格式加密的,我以为xml的和json的差不多,是上上个星期五吧,我的同事也是在做微信公众号里面的消息推送解密,发现好像只能使用xml加密格式的发送到服务器,我们去年也做过企业微 ...

  8. 微信小程序绑定客服,接收不到消息?

    微信小程序绑定客服,无法接收用户消息 客服文档 添加客服 <button class="serviceBtn" open-type="contact"&g ...

  9. 微信小程序在开发者工具中能收到发送消息,手机预览不能获取发送消息

    如题,开发微信小程序时,发现在开发者工具中能正常发送收到消息,而在真机中不打开调试模式的情况下不能发送获取消息,找了半天文档终于找到了原因: 服务器域名配置原因引起的 在没设置服务器域名的时候不开启上 ...

  10. 微信小程序统一分享,全局接管页面分享消息的一些技巧

    前言 最近都在折腾自己的个人内容聚合小程序.除了作为原创专栏,视频教程的聚合.我有什么新的想法,产品创意,最终落地的东西都会放到这个小程序里. 而分享功能非常的重要,当某一个功能或文章打动用户的时候, ...

最新文章

  1. SparkJavaAPI:join的使用
  2. mysql 两张表合并查询_中级数据分析-多表查询
  3. oracle创建主键开并行,Oracle并行添加主键
  4. 准确率 召回率_机器学习中F值(F-Measure)、准确率(Precision)、召回率(Recall)
  5. 判断年月日是否正确及获取当前天的前一天或前一个月
  6. 国外大神一张图学会python-12306看了会沉默,国外大神利用机器学习15分钟破解网站验证码!...
  7. Spark算子:RDD行动Action操作(2)–take、top、takeOrdered
  8. 未检测到与wia兼容的设备_关于检测到不兼容硬件设备的解决办法
  9. Windows7 简体中文旗舰版下载 (MSDN官方发布正式版原版镜像)
  10. mybatis-plus整合p6spy
  11. 【图像配准】点云配准ICP算法介绍:基础流程、ICP算法的变种
  12. 10246 - Asterix and Obelix
  13. 2022城市辅助驾驶赛道陷入“三国争霸”,数据智能助力毫末智行杀出重围?
  14. python 闲鱼_闲鱼上哪些商品抢手?Python 分析后告诉你
  15. 向日葵(SunLoginClient_10.5.0.29)RCE验证
  16. mezzanine安装和使用
  17. 利用腾讯漏洞,QQ群日拉万人精准流量的方法
  18. 如何把产品打造成有生命的品牌
  19. ZigBee 3.0 Z-Stack 3.01 终端设备入网过程全解析
  20. mindspore ST调试报错 RunTimeError

热门文章

  1. 时间和日期函数 now 的作用
  2. 火山引擎徐鑫:工程师如何与云原生共同成长
  3. HEVC之交流学习篇
  4. HP Smart连接异常缓慢,点击扫描闪退
  5. Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法Windows版(手贱强制重启电脑的后果)
  6. leetcode21---合并两个有序链表
  7. Unity3dPro 和免费版的区别
  8. php 如果有 截取,PHP 字符串截取
  9. python wechatsougou_使用Python的requests库模拟登陆微信搜狗,爬取100X10篇微信文章并保存到MySQL...
  10. 数值分析---Jacobi迭代法