微信开发者工具 wxmi修改模版颜色_干货 | 微信小程序推送消息简单Demo

45bf2e36cc1899bc76f29cdca3e63812.png

在开始前,你需要准备:

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

正式

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

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

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

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

b54ded5dafd8dc844a6160c907e15844.png

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) {
    //    打印formId
    console.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)
      }
    })
  }
})

复制代码

0ec28922d42f4f702ebb03ad34d500e5.png

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

3. 请求后台接口来发送消息

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 "推送成功";
    }

}
复制代码

cb04a116a429e1b5e5e41f4fbb7626ed.png

原文作者:Rolan

原文链接:http://www.wxapp-union.com/article-5698-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值