2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 微信小程序推送消息java开发_干货 | 微信小程序推送消息简单Demo

微信小程序推送消息java开发_干货 | 微信小程序推送消息简单Demo

时间:2024-08-20 18:09:08

相关推荐

微信小程序推送消息java开发_干货 | 微信小程序推送消息简单Demo

在开始前,你需要准备:注册微信小程序

一个简单的springBoot 项目

微信开发者工具

正式

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

public class WxMaTemplateMessage implements Serializable {

private String toUser; // 给谁推送(用户openId)

private String templateId; // 消息ID

private String page; // 用户点开消息跳转到对应的小程序界面

private String formId; // 表单formId

private List data; // 消息的数据列表

private String emphasisKeyword;

...

复制代码

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

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

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

// index.wxml

确定

formid:{{formid}}

发送

复制代码

//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)

}

})

}

})

复制代码

这里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.mon.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 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 "推送成功";

}

}

复制代码

原文作者:Rolan

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。