发送微信通知 java
//实现类
@Service
public class WeChatServiceImpl implements IWeChatService { @Override
public WeChatSendMsgResult sendMsg(String paramJson) {
try {
String url = MessageFormat.format(WeChatConstant.SEND_MESSAGE, WeChatUtil.getToken());
String result = HttpUtil.doJsonPost(url, paramJson, null);
return JSONObject.parseObject(result, WeChatSendMsgResult.class);
} catch (Exception e) {
return new WeChatSendMsgResult(-2020, "消息通知发送到微信异常");
}
} @Override
public WeChatSendMsgResult sendTextMsg(String touser, String toparty, String totag, String content) {
try {
WeChatText text = new WeChatText();
text.setContent(content);
WeChatTextMsg textMsg = new WeChatTextMsg();
textMsg.setText(text);
textMsg.setMsgtype("text");
textMsg.setAgentid(WeChatUtil.agentId);
textMsg.setTouser(touser);
textMsg.setToparty(toparty);
textMsg.setTotag(totag);
return sendMsg(JSONObject.toJSONString(textMsg));
} catch (Exception e) {
return new WeChatSendMsgResult(-2021, "组装微信消息通知异常");
}
} @Override
public WeChatSendMsgResult sendImageMsg(String touser, String toparty, String totag, String mediaId) {
try {
WeChatImage image = new WeChatImage();
image.setMedia_id(mediaId);
WeChatImageMsg imageMsg = new WeChatImageMsg();
imageMsg.setImage(image);
imageMsg.setMsgtype("image");
imageMsg.setAgentid(WeChatUtil.agentId);
imageMsg.setTouser(touser);
imageMsg.setToparty(toparty);
imageMsg.setTotag(totag);
return sendMsg(JSONObject.toJSONString(imageMsg));
} catch (Exception e) {
return new WeChatSendMsgResult(-2021, "组装微信消息通知异常");
}
} @Override
public WeChatSendMsgResult sendVoiceMsg(String touser, String toparty, String totag, String mediaId) {
try {
WeChatVoice voice = new WeChatVoice();
voice.setMedia_id(mediaId);
WeChatVoiceMsg voiceMsg = new WeChatVoiceMsg();
voiceMsg.setVoice(voice);
voiceMsg.setMsgtype("voice");
voiceMsg.setAgentid(WeChatUtil.agentId);
voiceMsg.setTouser(touser);
voiceMsg.setToparty(toparty);
voiceMsg.setTotag(totag);
return sendMsg(JSONObject.toJSONString(voiceMsg));
} catch (Exception e) {
return new WeChatSendMsgResult(-2021, "组装微信消息通知异常");
}
} @Override
public WeChatSendMsgResult sendVideoMsg(String touser, String toparty, String totag, String description, String mediaId, String title) {
try {
WeChatVideo video = new WeChatVideo();
video.setDescription(description);
video.setMedia_id(mediaId);
video.setTitle(title);
WeChatVideoMsg videoMsg = new WeChatVideoMsg();
videoMsg.setVideo(video);
videoMsg.setMsgtype("video");
videoMsg.setAgentid(WeChatUtil.agentId);
videoMsg.setTouser(touser);
videoMsg.setToparty(toparty);
videoMsg.setTotag(totag);
return sendMsg(JSONObject.toJSONString(videoMsg));
} catch (Exception e) {
return new WeChatSendMsgResult(-2021, "组装微信消息通知异常");
}
} @Override
public WeChatSendMsgResult sendFileMsg(String touser, String toparty, String totag, String mediaId) {
try {
WeChatFile file = new WeChatFile();
file.setMedia_id(mediaId);
WeChatFileMsg fileMsg = new WeChatFileMsg();
fileMsg.setFile(file);
fileMsg.setMsgtype("file");
fileMsg.setAgentid(WeChatUtil.agentId);
fileMsg.setTouser(touser);
fileMsg.setToparty(toparty);
fileMsg.setTotag(totag);
return sendMsg(JSONObject.toJSONString(fileMsg));
} catch (Exception e) {
return new WeChatSendMsgResult(-2021, "组装微信消息通知异常");
}
} @Override
public WeChatSendMsgResult sendTextCardMsg(String touser, String toparty, String totag, String btnTxt, String description, String title, String url) {
try {
WeChatTextCard textCard = new WeChatTextCard();
textCard.setBtntxt(btnTxt);
textCard.setDescription(description);
textCard.setTitle(title);
textCard.setUrl(url);
WeChatTextCardMsg textCartMsg = new WeChatTextCardMsg();
textCartMsg.setTextcard(textCard);
textCartMsg.setMsgtype("textcard");
textCartMsg.setAgentid(WeChatUtil.agentId);
textCartMsg.setTouser(touser);
textCartMsg.setToparty(toparty);
textCartMsg.setTotag(totag);
return sendMsg(JSONObject.toJSONString(textCartMsg));
} catch (Exception e) {
return new WeChatSendMsgResult(-2021, "组装微信消息通知异常");
}
} @Override
public WeChatSendMsgResult sendNewsMsg(String touser, String toparty, String totag, WeChatNews news) {
try {
WeChatNewsMsg newsMsg = new WeChatNewsMsg();
newsMsg.setNews(news);
newsMsg.setMsgtype("news");
newsMsg.setAgentid(WeChatUtil.agentId);
newsMsg.setTouser(touser);
newsMsg.setToparty(toparty);
newsMsg.setTotag(totag);
return sendMsg(JSONObject.toJSONString(newsMsg));
} catch (Exception e) {
return new WeChatSendMsgResult(-2021, "组装微信消息通知异常");
}
} @Override
public WeChatSendMsgResult sendMpNewsMsg(String touser, String toparty, String totag, WeChatMpNews mpnews) {
try {
WeChatMpNewsMsg mpNewsMsg = new WeChatMpNewsMsg();
mpNewsMsg.setMpnews(mpnews);
mpNewsMsg.setMsgtype("news");
mpNewsMsg.setAgentid(WeChatUtil.agentId);
mpNewsMsg.setTouser(touser);
mpNewsMsg.setToparty(toparty);
mpNewsMsg.setTotag(totag);
return sendMsg(JSONObject.toJSONString(mpNewsMsg));
} catch (Exception e) {
return new WeChatSendMsgResult(-2021, "组装微信消息通知异常");
}
} }
//工具类======
@Component
public class WeChatUtil {
public static String corpid ="xxxxxxxx";
public static String agentId ="xxxxxxxx";
public static String secret ="xxxxxxxxxxx";
public static String accessToken ="";
public static long createTime = 0;
public static String getToken(){
if("".equals(accessToken)){
getToken(corpid,secret);
}
else{
if(DateUtil.now().getTime() - createTime > 7000000l ){
getToken(corpid,secret);
}
}
return accessToken;
}
public static void getToken(String corpid, String corpsecret ){
String url = MessageFormat.format(WeChatConstant.GET_TOKEN,corpid,corpsecret);
String result = HttpUtil.doGet(url,null);
WeChatAccessTokenResult res = JSONObject.parseObject(result, WeChatAccessTokenResult.class);
if("0".equals(String.valueOf(res.getErrcode()))){
accessToken = res.getAccess_token();
createTime = DateUtil.now().getTime();
}
}
}
//常量=====
public interface WeChatConstant {
String GET_TOKEN="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}";
String SEND_MESSAGE="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}";
}
//实体类
public class WeChatAccessTokenResult {
private Integer errcode;
private String errmsg;
private String access_token;
private int expires_in;
}
发送微信通知 java的更多相关文章
- 发送微信通知 java 实现
/实现类 @Service public class WeChatServiceImpl implements IWeChatService { @Override public WeChatSend ...
- 微信支付java
直接上代码: 1.支付配置PayCommonUtil import com.legendshop.payment.tenpay.util.MD5Util; import com.legendshop. ...
- 微信支付java版V3验证数据合法性
[TOC] 1. 微信支付java版V3验证数据合法性 概要:使用微信支付接口时,微信会返回或回调给商户XML数据,开发者需要验证微信返回的数据是否合法. 特别提醒:商户系统对于支付结果通知的内容一定 ...
- 微信小程序-统一下单、微信支付(Java后台)
1.首先分享 微信统一下单接口: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 微信接口 签名 对比网址: https: ...
- app微信支付-java服务端接口 支付-查询-退款
个人不怎么看得懂微信的文档,看了很多前辈的写法,终于调通了,在这里做一下记录. 首先来定义各种处理类(微信支付不需要特殊jar包,很多处理需要自己封装,当然也可以自己写完打个jar包) 参数要用jdo ...
- APP微信支付Java后台的实现(springmvc)
第一次做微信支付,阅读完开发文档后,下了个官方demo,摸索了好久,期间也出现了好多问题,终于是实现生成预支付订单以及支付成功后接收微信服务器通知,不多说了,直接上代码: 一.工具类 Constant ...
- 全网最全的Windows下Anaconda2 / Anaconda3里Python语言实现定时发送微信消息给好友或群里(图文详解)
不多说,直接上干货! 缘由: (1)最近看到情侣零点送祝福,感觉还是很浪漫的事情,相信有很多人熬夜为了给爱的人送上零点祝福,但是有时等着等着就睡着了或者时间并不是卡的那么准就有点强迫症了,这是也许程序 ...
- C#的Xamarin开发小米盒子应用并以WCF实现微信通知
对于熟悉C#语言的开发人员而言,用Xamarin开发Android应用也是一个不错的选择.小米盒子是Android系统.当然也就能够使用Xamarin来开发.首选来看效果图. watermark/2/ ...
- [企业微信通知系列]Jenkins发布后自动通知
一.前言 最近使用Jenkins进行自动化部署,但是部署后,并没有相应的通知,虽然有邮件发送通知,但是发现邮件会受限于接收方的接收设置,导致不能及时看到相关的发布内容.而由于公司使用的是企业微信,因此 ...
随机推荐
- Hybrid接口应用
简介:VLAN10内通信,VLAN20内通信,VLAN30与VLAN10.VLAN20.VLAN30皆可通信 Hybrid接口应用拓扑图: 一.配置PC机 ip 并测试相互能否ping通 PC名称 I ...
- LeetCode 038 Count and Say
题目要求:Count and Say The count-and-say sequence is the sequence of integers beginning as follows:1, 11 ...
- Kubernetes中Service的使用
目录 简介 1. Service资源定义 1.1 Service Type ClusterIP 无头service NodePort sessionAffinity实现源地址session绑定 简介 ...
- Java数据结构(十三)—— 二叉排序树(BST)
二叉排序树(BST) 需求 给定数列{7,3,10,12,5,1,9},要求能够高效的完成对数据的查询和添加 思路三则 使用数组,缺点:插入和排序速度较慢 链式存储,添加较快,但查找速度慢 使用二叉排 ...
- Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法
☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...
- 第6.4节 Python动态表达式计算:eval函数详述
在Python动态执行的函数中,eval是用于执行表达式计算的函数,这个函数用于执行字符串中包含的一个表达式或其编译后对应的代码,不能适用于执行Python语句和完整的代码. 一. 语法 1. ...
- Python中使用eval执行下面函数的结果怎么是字符串'10020'?
定义了函数: def add(a,b): s='a+b' c=compile(s,'','eval') gArea,lArea = {},{} gArea['a']=str(a10) gArea['b ...
- PyQt(Python+Qt)学习随笔:QTreeWidget的columnCount属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件中的每个项有一个或多个文字标签或其他装饰符(如图标),这些内容每个显示为一列.QTreeWi ...
- Robot Framework+adb框架自动化测试Android设备案例⑸——L1层测试用例
一.L1层测试用例 1.初始化.robot *** Settings *** Resource ../L2层关键字.robot *** Test Cases *** 切换EMMC模式 [Tags] A ...
- [从源码学设计]蚂蚁金服SOFARegistry之推拉模型
[从源码学设计]蚂蚁金服SOFARegistry之推拉模型 目录 [从源码学设计]蚂蚁金服SOFARegistry之推拉模型 0x00 摘要 0x01 相关概念 1.1 推模型和拉模型 1.1.1 推 ...