前言


  最近项目有需求需要用到微信小程序推送消息,在此记录一下实验过程。

前提准备


在开始前,你需要准备:

  • 注册微信小程序
  • 一个简单的springBoot 项目
  • 微信开发者工具

正式


微信小程序发送消息主要通过WxMaTemplateMessage 类来推送

public class WxMaTemplateMessage implements Serializable {private String toUser;       // 给谁推送(用户openId)private String templateId;  // 消息IDprivate String page;    // 用户点开消息跳转到对应的小程序界面private String formId;  // 表单formIdprivate List<WxMaTemplateData> data; // 消息的数据列表private String emphasisKeyword;
...

所以我们在推送前需要构造这些信息,formId 和toUser(openId) 是从前端传过来的。formId 可以通过表单或者支付来获取,表单比较简单,只需要把report-submit 设置为true 就可以获得。

简单通过微信开发者工具来获取formId(openId 数据库存了)

  1. 先建立一个前端项目,AppID 就是小程序的id,在微信公众号后台可以看到。

  2. 修改index/index.js 和index.wxml (百度某位同学的),通过表单来获取formId ,并发送到后台。

// index.wxml
<form bindsubmit='registerFormSubmit' report-submit='true'><view class='buttons'><button class='confirmbtn' form-type='submit'>确定</button></view></form>
<view>formid: {{formid}}</view>
<button bindtap='push'>发送
</button>
//index.js
//获取应用实例
const app = getApp()Page({data: {formid: ""},//事件处理函数registerFormSubmit: function (e) {//    打印formIdconsole.log(e.detail.formId);this.setData({formid: e.detail.formId})},//测试推送push() {let formid = this.data.formid;let openid = 'oT-H-40ZHdRX1REZFKQhPg3jJZoQ';wx.request({url: 'http://localhost:8080/push?openId=' + openid + "&formId=" + formid,success(res) {console.log("推送结果:", res)},fail(err) {console.log("推送失败:", err)}})}
})


这里formid 在测试的时候获取不到,调到真机调试,或者用预览就行了。

  1. 请求后台接口来发送消息(ctrl c v 百度某同学)
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;@RestController
public class PushController {@GetMapping("/push")public String push(@RequestParam String openId, @RequestParam String formId) {//1,配置小程序信息WxMaInMemoryConfig wxConfig = new WxMaInMemoryConfig();wxConfig.setAppid("你的appId");wxConfig.setSecret("你的secret");WxMaService wxMaService = new WxMaServiceImpl();wxMaService.setWxMaConfig(wxConfig);//2,设置模版信息(keyword1:类型,keyword2:内容)List<WxMaTemplateData> templateDataList = new ArrayList<>(2);WxMaTemplateData data1 = new WxMaTemplateData("keyword1", "获取老师微信");WxMaTemplateData data2 = new WxMaTemplateData("keyword2", "2501902696");WxMaTemplateData data3 = new WxMaTemplateData("keyword3", "2501902696");WxMaTemplateData data4 = new WxMaTemplateData("keyword4", "2501902696");templateDataList.add(data1);templateDataList.add(data2);templateDataList.add(data3);templateDataList.add(data4);//3,设置推送消息WxMaTemplateMessage templateMessage = WxMaTemplateMessage.builder().toUser(openId).formId(formId).templateId("你的消息id") // 在微信公众号后台可以申请消息模版.data(templateDataList).page("pages/index/index").build();//4,发起推送try {wxMaService.getMsgService().sendTemplateMsg(templateMessage);} catch (WxErrorException e) {System.out.println("推送失败:" + e.getMessage());return e.getMessage();}return "推送成功";}}

一个简单的小程序推送demo ,权侵删

微信小程序消息通知简单Demo相关推荐

  1. 微信小程序消息通知开发

    微信小程序消息通知开发及注意点 大致流程图: #mermaid-svg-kKvz8B789cmQ7zco {font-family:"trebuchet ms",verdana,a ...

  2. 微信小程序中实现简单Demo(两数之和)

    一.安装微信小程序开发者工具   打开微信小程序官网的开发者文档https://developers.weixin.qq.com/miniprogram/dev/,按照流程安装微信小程序开发者工具 二 ...

  3. 微信小程序 消息订阅 长期订阅 一次授权 多次接收 微信服务通知

    微信小程序消息订阅 长期订阅 一次授权 多次接收 发送微信服务通知消息 这里讲长期订阅! 长期订阅! 长期订阅! 需求描述: – 根据用户不同标签(租户.业主.维修师傅.居委会成员)一键向人员统一发送 ...

  4. android商品数量加减,微信小程序实现一个简单的商品数量加减案例

    简介 这是一个用微信小程序原生代码实现的数量加减demo,主要是用于商品购物车或者商品详情修改数量使用,很简单哦~~~. 核心js方法说明addCount(增加数量) delCount (减少数量) ...

  5. 微信小程序消息推送,实现未完成计划的在微信内的定时提醒功能

    微信小程序消息提醒(微信内提醒) 提示:此处仅是小程序消息提醒的一个小例子,希望能够为大家抛砖引玉 目录 微信小程序消息提醒(微信内提醒) 需求及效果展示 一.实现思路 二.实现步骤 1.获取模板ID ...

  6. 微信小程序的考勤管理Demo,包括前后端及数据库等内容

    这是一个微信小程序的考勤管理Demo,包括前后端及数据库等内容.如有错误或建议,欢迎指出. 前端:微信小程序框架 后端:koa框架基于express的新一代框架 文件:url80.ctfile.com ...

  7. 微信小程序消息模板设计及实现

    本文以微信小程序内置的两个模板:购买成功和评论回复提醒为例来阐述第三方微信小程序平台的设计. 小程序端 微信用户支付成功后,微信服务通知中会收到支付成功服务提醒.见下图: 商家端 用户完成评价后,商家 ...

  8. php微信小程序物流进度推送,微信小程序 消息推送php服务器验证实例详解

    微信小程序 消息推送php服务器验证实例详解 设置页面("设置">>"开发设置"): 1.设置服务器域名 注意http和https协议的不同. 2. ...

  9. nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能

    利用Nodejs怎么实现一个微信小程序消息推送功能 发布时间:2021-01-20 13:55:29 来源:亿速云 阅读:92 作者:Leah 今天就跟大家聊聊有关利用Nodejs怎么实现一个微信小程 ...

最新文章

  1. Python使用sklearn构建lasso回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型
  2. 计算机制造理论,计算制造
  3. 服务器于本地间进行复制粘贴
  4. linux shell带索引下标遍历数组
  5. 智伴机器人三级分销模式_有赞三级分销?有赞分销模式怎
  6. 像Java这样的C ++具有低延迟
  7. 中国股市暴涨暴跌全记录
  8. 操作系统双语阅读 - Schedulers调度器2
  9. 为什么好多人说uc浏览器是最牛的浏览器?
  10. C语言经典69题(又易到难)每日更新5道题
  11. 图片去黑底原理(做个笔记)
  12. Design Compiler工具学习笔记(5)
  13. 信息安全风险评估---矩阵法计算风险
  14. nginx静态文件缓存
  15. 主流加密通信应用Signal在中国“失联”
  16. oracle建表空间
  17. 实时时钟芯片DS3231应用笔记,使用指南,FAQ全集
  18. Activiti 工作流引擎 ~ 获取审批记录
  19. js和html5实现扫描条形码
  20. 大数据培训课程:Hive配置总结

热门文章

  1. choco 使用详解--window
  2. 数据同步工具—SeaTunnel简介
  3. 解析dump的几种方式
  4. 随机过程(random process)
  5. html导出pdf及word,保留完成样式以及格式调研
  6. Bluetooth Controller BB Phsical Channel相关基础知识整理
  7. 有关卡方检验(chi-square test )
  8. 阿里云Quick BI学习之报表制作
  9. 程序设计之学生宿舍管理系统
  10. n (n - 1)的用途