发送微信通知 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进行自动化部署,但是部署后,并没有相应的通知,虽然有邮件发送通知,但是发现邮件会受限于接收方的接收设置,导致不能及时看到相关的发布内容.而由于公司使用的是企业微信,因此 ...
随机推荐
- 怎么用Iometer测试存储性能
1.Disk Targets选项栏中选择要测试的磁盘,1 per target of Outstanding I/Os 保持默认即可. 2.在Access Specifications栏中新建测试条件 ...
- Oracle11gR2 sqlplus中可以执行上键查询backspace删除
1.1 sqlplus中可以执行上键查询backspace删除 1.1.1 上键查询 方法1: 安装源-导入key-安装rpm包-进入配置文件修改参数 rpm -ivh http://download ...
- 2、Spring Cloud和dubbo简介
1.Spring Cloud简介 (1).Spring Cloud简介 SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负 ...
- 【2020.12.02提高组模拟】球员(player)
题目 题目描述 老师们已经知道学生喜欢睡觉,Soaring是这项记录保持者.他只会在吃饭或玩FIFA20时才会醒来.因此,他经常做关于足球的梦,在他最近的一次梦中,他发现自己成了皇家马德里足球俱乐部的 ...
- 区块链学习7:超级账本项目Fabric中的背书、背书节点、背书策略、背书签名
☞ ░ 前往老猿Python博文目录 ░ 在Hyperledger Fabric区块链中,有背书节点进行背书,Hyperledger Fabric 使用背书策略来定义哪些节点需要执行交易. Hyper ...
- 第三十四章、PyQt中的输入部件:QComboBox组合框功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 Designer中输入工具部件中的Combo Box组合框与 ...
- 第14章 web前端开发小白学爬虫结束语
老猿学爬虫应该是2019年7月初开始的,到现在2个多月了,有段时间了,这部分一直是老猿期待能给大家带来收获的,因为老猿爬虫实战应用的场景与网上老猿已知的场景基本都不一样,是从复用网站登录会话信息来开发 ...
- PHP代码审计分段讲解(6)
14 intval函数四舍五入 <?php if($_GET[id]) { mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_M ...
- 性能测试基础——(MEN)
关于内存在一块其实我并不是很想拿出来说,一般情况下内存这一块都是可优化的,可以通过硬件资源或者调整一些系统或者应用系统的参数配置来进行优化. 很多同僚问到了"内存泄漏"和" ...
- java基础之二:取整函数(Math类)
在日常开发中经常会遇到数字的情况,有关数据的场景中会遇到取整的情况,java中提供了取整函数.看下java.lang.Math类中取整函数的用法. 一.概述 java.lang.Math类中有三个和取 ...