/实现类
@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;
}

  //调用接口

package org.springblade.resource.service;

import org.springblade.resource.entity.WeChatSendMsgResult;
import org.springblade.resource.entity.wechat.WeChatMpNews;
import org.springblade.resource.entity.wechat.WeChatNews; public interface IWeChatService { WeChatSendMsgResult sendMsg(String paramJson); WeChatSendMsgResult sendTextMsg(String touser, String toparty, String totag, String content); WeChatSendMsgResult sendImageMsg(String touser, String toparty, String totag, String mediaId); WeChatSendMsgResult sendVoiceMsg(String touser, String toparty, String totag, String mediaId); WeChatSendMsgResult sendVideoMsg(String touser, String toparty, String totag, String description, String mediaId, String title); WeChatSendMsgResult sendFileMsg(String touser, String toparty, String totag, String mediaId); WeChatSendMsgResult sendTextCardMsg(String touser, String toparty, String totag, String btnTxt, String description, String title, String url); WeChatSendMsgResult sendNewsMsg(String touser, String toparty, String totag, WeChatNews news); WeChatSendMsgResult sendMpNewsMsg(String touser, String toparty, String totag, WeChatMpNews mpnews); }

  

发送微信通知 java 实现的更多相关文章

  1. 发送微信通知 java

    //实现类@Service public class WeChatServiceImpl implements IWeChatService { @Override public WeChatSend ...

  2. 微信支付java

    直接上代码: 1.支付配置PayCommonUtil import com.legendshop.payment.tenpay.util.MD5Util; import com.legendshop. ...

  3. 微信支付java版V3验证数据合法性

    [TOC] 1. 微信支付java版V3验证数据合法性 概要:使用微信支付接口时,微信会返回或回调给商户XML数据,开发者需要验证微信返回的数据是否合法. 特别提醒:商户系统对于支付结果通知的内容一定 ...

  4. 微信小程序-统一下单、微信支付(Java后台)

    1.首先分享 微信统一下单接口: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1   微信接口 签名 对比网址: https: ...

  5. app微信支付-java服务端接口 支付-查询-退款

    个人不怎么看得懂微信的文档,看了很多前辈的写法,终于调通了,在这里做一下记录. 首先来定义各种处理类(微信支付不需要特殊jar包,很多处理需要自己封装,当然也可以自己写完打个jar包) 参数要用jdo ...

  6. APP微信支付Java后台的实现(springmvc)

    第一次做微信支付,阅读完开发文档后,下了个官方demo,摸索了好久,期间也出现了好多问题,终于是实现生成预支付订单以及支付成功后接收微信服务器通知,不多说了,直接上代码: 一.工具类 Constant ...

  7. 全网最全的Windows下Anaconda2 / Anaconda3里Python语言实现定时发送微信消息给好友或群里(图文详解)

    不多说,直接上干货! 缘由: (1)最近看到情侣零点送祝福,感觉还是很浪漫的事情,相信有很多人熬夜为了给爱的人送上零点祝福,但是有时等着等着就睡着了或者时间并不是卡的那么准就有点强迫症了,这是也许程序 ...

  8. C#的Xamarin开发小米盒子应用并以WCF实现微信通知

    对于熟悉C#语言的开发人员而言,用Xamarin开发Android应用也是一个不错的选择.小米盒子是Android系统.当然也就能够使用Xamarin来开发.首选来看效果图. watermark/2/ ...

  9. [企业微信通知系列]Jenkins发布后自动通知

    一.前言 最近使用Jenkins进行自动化部署,但是部署后,并没有相应的通知,虽然有邮件发送通知,但是发现邮件会受限于接收方的接收设置,导致不能及时看到相关的发布内容.而由于公司使用的是企业微信,因此 ...

随机推荐

  1. 必须掌握的Spark调优技术点

    在利用Spark处理数据时,如果数据量不大,那么Spark的默认配置基本就能满足实际的业务场景.但是当数据量大的时候,就需要做一定的参数配置调整和优化,以保证业务的安全.稳定的运行.并且在实际优化中, ...

  2. 交换机Access、Trunk和Hybrid 接口类型及区别

    交换机接口的类型可以是 Access.Trunk和Hybrid. Access类型的接口仅属于一个VLAN,只能接收.转发相应VLAN的帧: Trunk类型接口则默认属于所有VLAN,任何 Tagge ...

  3. UML第一次个人作业

    这个作业属于哪个课程 https://api.jihuayu.site/cnblogs 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/2018SE1/ ...

  4. 解决右键notepad++打开时提示, ShellExecute failed (2): Is this command correct?

    错误如下图: 解决方法: 右键notepad++.exe; 去掉管理员方式

  5. AlanShan数据库课程设计报告

    目    录 1.绪论.... 2 1.1前言... 2 1.2社会背景... 2 1.3超市背景... 3 2.系统可行性研究.... 4 2.1 技术可行性研究... 4 2.2 经济可行性研究. ...

  6. 第15.43节、PyQt输入部件:QAbstractSpinBox派生类QSpinBox、 QDoubleSpinBox、QDateTimeEdit、QDateEdit和QTimeEdit功能简介

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer输入部件中的Spin B ...

  7. CTFHub Web题学习笔记(Web前置技能+信息泄露题解writeup)

    今天CTFHub正式上线了,https://www.ctfhub.com/#/index,之前有看到这个平台,不过没在上面做题,技能树还是很新颖的,不足的是有的方向的题目还没有题目,CTF比赛时间显示 ...

  8. flask注册蓝图报错

    记录下这个我找了两天的坑... take no arguments() 这两天一直学习flask的时候,我把注册的蓝图,写成注册的form表单的 举个栗子 class TetsView(view.Me ...

  9. 百度网盘下载器:SpeedPan2.3.8

    SpeedPan是款百度网盘资源下载工具,下载速度还行(至少比百度网盘快太多了),支持登录百度账号,也支持免登录下载.官网免费版的取消分享了,我从油管上看到了这个软件,分享给大家. 天翼云:https ...

  10. js 彻底搞懂事件循环机制 Event Loop

    我们都知道javascript是单线程语言,就是因为单线程的特性,就不得不提js中的同步和异步 一.同步和异步 所谓单线程,无非就是同步队列和异步队列,js代码是自上向下执行的,在主线程中立即执行的就 ...