发送公众号模板消息测试
This commit is contained in:
@@ -14,10 +14,7 @@ import com.gxwebsoft.common.core.utils.CommonUtil;
|
||||
import com.gxwebsoft.common.core.utils.RedisUtil;
|
||||
import com.gxwebsoft.common.core.web.ApiResult;
|
||||
import com.gxwebsoft.common.core.web.BaseController;
|
||||
import com.gxwebsoft.common.system.entity.Role;
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import com.gxwebsoft.common.system.entity.UserOauth;
|
||||
import com.gxwebsoft.common.system.entity.UserRole;
|
||||
import com.gxwebsoft.common.system.entity.*;
|
||||
import com.gxwebsoft.common.system.param.RoleParam;
|
||||
import com.gxwebsoft.common.system.param.UserParam;
|
||||
import com.gxwebsoft.common.system.service.RoleService;
|
||||
@@ -113,6 +110,7 @@ public class WxOfficialController extends BaseController {
|
||||
final String unionid = jsonObject.getString("unionid");
|
||||
final String subscribe = jsonObject.getString("subscribe");
|
||||
System.out.println("unionid = " + unionid);
|
||||
sendTemplateMessage(openId);
|
||||
// 关注操作
|
||||
if (subscribe != null &&subscribe.equals("1")) {
|
||||
final int count = userOauthService.count(new LambdaQueryWrapper<UserOauth>().eq(UserOauth::getOauthType, MP_OFFICIAL).eq(UserOauth::getUnionid, unionid).eq(UserOauth::getTenantId,tenantId));
|
||||
@@ -169,10 +167,39 @@ public class WxOfficialController extends BaseController {
|
||||
System.out.println("关注微信公众号 = " + save);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void sendTemplateMessage(String openId){
|
||||
String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + getAccessToken();
|
||||
TemplateMessage templateMessage = new TemplateMessage();
|
||||
templateMessage.setToUser(openId);
|
||||
templateMessage.setTemplateId("DSGpuDx1i7AWyRXejalnkq5AeslKnkm6T9omu6NPoLM"); // dVSbX2NRzAG7IuN4kkCQhgV-LjzxvApN3PgrGlon9JU
|
||||
|
||||
/*
|
||||
您好,您已成功消费。
|
||||
|
||||
商品名:微信影城影票
|
||||
消费时间:2013年8月20日 20:38
|
||||
备注:您可以回复文字或语音对该商品及商家进行评价哦~
|
||||
{{productType.DATA}}:{{name.DATA}} 消费时间:{{time.DATA}} {{remark.DATA}}
|
||||
*/
|
||||
HashMap<String, TemplateMessageDTO> data = new HashMap<>();
|
||||
data.put("thing33",new TemplateMessageDTO("您的新的工单需要处理"));
|
||||
data.put("phrase5",new TemplateMessageDTO("网站故障"));
|
||||
data.put("time40",new TemplateMessageDTO("2023-11-11"));
|
||||
System.out.println("data = " + data);
|
||||
// 链式构建请求
|
||||
String result = HttpRequest.post(url)
|
||||
.body(JSONObject.toJSONString(data))//表单内容
|
||||
.timeout(20000)//超时,毫秒
|
||||
.execute().body();
|
||||
System.out.println("result = " + result);
|
||||
System.out.println("getAccessToken() = " + getAccessToken());
|
||||
}
|
||||
|
||||
@ApiOperation("send发送订阅通知")
|
||||
@PostMapping("/send")
|
||||
public ApiResult<?> send(UserParam param) {
|
||||
@@ -256,6 +283,6 @@ public class WxOfficialController extends BaseController {
|
||||
public ApiResult<?> count(){
|
||||
final int count = userOauthService.count(new LambdaQueryWrapper<UserOauth>().eq(UserOauth::getOauthType, MP_OFFICIAL).eq(UserOauth::getUnionid, "o0FaIuKa2UsVp6FCbvmZlrcaBRCM"));
|
||||
System.out.println("count = " + count);
|
||||
return success(count);
|
||||
return success(getAccessToken());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.gxwebsoft.common.system.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 微信公众号模板消息对象
|
||||
*
|
||||
* @author WebSoft
|
||||
* @since 2018-12-24 16:10:54
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(description = "微信公众号模板消息对象")
|
||||
public class TemplateMessage implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("接收者openid")
|
||||
@TableField(exist = false)
|
||||
private String toUser;
|
||||
|
||||
@ApiModelProperty("模板ID")
|
||||
@TableField(exist = false)
|
||||
private String templateId;
|
||||
|
||||
@ApiModelProperty("模板跳转链接(海外账号没有跳转能力)")
|
||||
@TableField(exist = false)
|
||||
private String url;
|
||||
|
||||
@ApiModelProperty("跳小程序所需数据,不需跳小程序可不用传该数据")
|
||||
@TableField(exist = false)
|
||||
private String miniProgram;
|
||||
|
||||
@ApiModelProperty("所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏)")
|
||||
@TableField(exist = false)
|
||||
private String appid;
|
||||
|
||||
@ApiModelProperty("所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),要求该小程序已发布,暂不支持小游戏")
|
||||
@TableField(exist = false)
|
||||
private String pagePath;
|
||||
|
||||
@ApiModelProperty("模板数据")
|
||||
@TableField(exist = false)
|
||||
private Object data;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.gxwebsoft.common.system.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 微信公众号模板消息对象
|
||||
*
|
||||
* @author WebSoft
|
||||
* @since 2018-12-24 16:10:54
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(description = "模板消息内容")
|
||||
public class TemplateMessageDTO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("消息实参")
|
||||
@TableField(exist = false)
|
||||
private String value;
|
||||
|
||||
@ApiModelProperty("消息颜色")
|
||||
private String color;
|
||||
|
||||
public TemplateMessageDTO(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
public TemplateMessageDTO(String value, String color) {
|
||||
this.value = value;
|
||||
this.color = color;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user