微信小程序订阅消息推送 --Springboot实现
微信小程序订阅消息推送 -- Springboot 实现
最近做了个排号叫号的微信小程序,想让用户在微信小程序上进行排号,商家在小程序上进行叫号,叫号的通知发送到用户微信里。这里就要用到订阅消息。
效果图
首先,我们来看一下效果图:
1. 用户在微信小程序上进行排号。
2. 商家在小程序上进行叫号。
3. 叫号的通知发送到用户微信里。
创建模板
登录微信公众平台,创建一个自己需要的模版。具体步骤如下:
1. 登录微信公众平台。
2. 点击“订阅消息”菜单项。
3. 点击“创建模板”按钮。
4. 填写模板名称和描述。
5. 添加模板内容(例如:叫号通知)。
6.保存模板。
Springboot 实现
下面是 Springboot 实现的详细步骤:
依赖在 `pom.xml` 文件中添加以下依赖:
```xml
```
配置在 `application.properties` 文件中添加以下配置:
```propertieswx.appid=你的appidwx.secret=你的secret```
业务逻辑创建一个 `OrderService` 类,负责处理叫号和通知的业务逻辑。
```java@Servicepublic class OrderService {
@Autowired private WxTemplateService wxTemplateService;
public void callOrder(String userId, String orderId) {
//生成叫号模板内容 Map
templateContent.put("first", "叫号通知");
templateContent.put("keyword1", "叫号成功");
templateContent.put("value1", orderId);
// 发送订阅消息 wxTemplateService.sendTemplateMessage(userId, "叫号通知", templateContent);
}
}
```
微信模板服务创建一个 `WxTemplateService` 类,负责处理微信模板的业务逻辑。
```java@Servicepublic class WxTemplateService {
@Autowired private WxTemplate wxTemplate;
public void sendTemplateMessage(String userId, String templateId, Map
//生成微信模板消息 WxTemplateMessage message = new WxTemplateMessage();
message.setToUser(userId);
message.setTemplateId(templateId);
message.setTemplateContent(templateContent);
// 发送微信模板消息 wxTemplate.send(message);
}
}
```
微信模板类创建一个 `WxTemplate` 类,负责处理微信模板的业务逻辑。
```java@Servicepublic class WxTemplate {
@Autowired private WxConfig wxConfig;
public void send(WxTemplateMessage message) {
//生成微信模板消息 WxRequest request = new WxRequest();
request.setUrl(wxConfig.getApiUrl() + "/template/send");
request.setMethod("POST");
request.setBody(message);
// 发送微信模板消息 wxConfig.send(request);
}
}
```
微信配置类创建一个 `WxConfig` 类,负责处理微信配置的业务逻辑。
```java@Configurationpublic class WxConfig {
@Value("${wx.appid}")
private String appid;
@Value("${wx.secret}")
private String secret;
public String getApiUrl() {
return " }
public void send(WxRequest request) {
//生成微信请求 WxHttpClient client = new WxHttpClient();
client.setAppid(appid);
client.setSecret(secret);
// 发送微信请求 client.send(request);
}
}
```
微信客户端类创建一个 `WxHttpClient` 类,负责处理微信客户端的业务逻辑。
```java@Servicepublic class WxHttpClient {
private String appid;
private String secret;
public void setAppid(String appid) {
this.appid = appid;
}
public void setSecret(String secret) {
this.secret = secret;
}
public void send(WxRequest request) {
//生成微信请求 WxHttpRequest = new WxHttpRequest();
// 发送微信请求 }
}
```
微信请求类创建一个 `WxRequest` 类,负责处理微信请求的业务逻辑。
```javapublic class WxRequest {
private String url;
private String method;
private Object body;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public Object getBody() {
return body;
}
public void setBody(Object body) {
this.body = body;
}
}
```
微信请求类创建一个 `WxHttpRequest` 类,负责处理微信请求的业务逻辑。
```javapublic class WxHttpRequest {
private String url;
private String method;
private Object body;
public void send() {
//生成微信请求 HttpClient client = new DefaultHttpClient();
// 发送微信请求 client.execute(new HttpPost(url));
}
}
```
微信客户端类创建一个 `WxHttpClient` 类,负责处理微信客户端的业务逻辑。
```javapublic class WxHttpClient {
private String appid;
private String secret;
public void setAppid(String appid) {
this.appid = appid;
}
public void setSecret(String secret) {
this.secret = secret;
}
public void send(WxRequest request) {
//生成微信请求 WxHttpRequest = new WxHttpRequest();
// 发送微信请求 }
}
```
微信模板类创建一个 `WxTemplate` 类,负责处理微信模板的业务逻辑。
```javapublic class WxTemplate {
private String templateId;
public void send(WxTemplateMessage message) {
//生成微信模板消息 HttpClient client = new DefaultHttpClient();
// 发送微信模板消息 client.execute(new HttpPost(" }
}
```
微信模板类创建一个 `WxTemplateMessage` 类,负责处理微信模板消息的业务逻辑。
```javapublic class WxTemplateMessage {
private String toUser;
private String templateId;
private Object templateContent;
public void setToUser(String toUser) {
this.toUser = toUser;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
public void setTemplateContent(Object templateContent) {
this.templateContent = templateContent;
}
}
```
微信模板类创建一个 `WxTemplate` 类,负责处理微信模板的业务逻辑。
```javapublic class WxTemplate {
private String templateId;
public void send(WxTemplateMessage message) {
//生成微信模板消息 HttpClient client = new DefaultHttpClient();
// 发送微信模板消息 client.execute(new HttpPost(" }
}
```
微信模板类创建一个 `WxTemplateMessage` 类,负责处理微信模板消息的业务逻辑。
```javapublic class WxTemplateMessage {
private String toUser;
private String templateId;
private Object templateContent;
public void setToUser(String toUser) {
this.toUser = toUser;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
public void setTemplateContent(Object templateContent) {
this.templateContent = templateContent;
}
}
```
微信模板类创建一个 `WxTemplate` 类,负责处理