package com.yizhi.common.utils.weixin;
import com.alibaba.fastjson.JSON;
import com.yizhi.common.domain.SysException;
import com.yizhi.common.utils.HttpUtils;
import com.yizhi.miniapp.utils.JsonUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
public class WxConfigUtil {
private final static Logger log = LoggerFactory.getLogger(WxConfigUtil.class);
private static String APPID = WxConfig.appid;
private static String APPSECRET = WxConfig.appsecret;
public static String APPXCXID = WxConfig.appxcxid;
public static String APPXCXSECRET =WxConfig.appxcxsecret;
private static String msgapi = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=";
private static String nmsgapi = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
private static String xcxnmsgapi = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=";
private static String cmcapi = "https://api.weixin.qq.com/card/create?access_token=";
public static String weixin_jssdk_ticket_url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";
//@Autowired
//private static RedisUtils redisUtils;
public static void main(String[] args) {
Map news = new HashMap();
List articles = new ArrayList();
Map article = new HashMap();
article.put("title", "您有新的点点消费消息");
article.put("description", "您有新的点点消费消息");
article.put("url", "http://app.diandiancaidan.com");
article.put("picurl", "http://www.alumninet.net/imgs/tags/20160310041152.jpg");
articles.add(article);
news.put("articles", articles);
try {
Map data = new HashMap();
Map val = new HashMap();
val.put("value", "上菜了");
val.put("color", "#173177");
data.put("first", val);
Map val1 = new HashMap();
val1.put("value", "示例餐厅");
val1.put("color", "#173177");
data.put("storeName", val1);
Map val2 = new HashMap();
val2.put("value", "324234534");
val2.put("color", "#173177");
data.put("orderId", val2);
Map val3 = new HashMap();
val3.put("value", "堂食订单金额:100.00元");
val3.put("color", "#173177");
data.put("orderType", val3);
Map val4 = new HashMap();
val4.put("value", "为了保证出品新鲜美味,请您及时取餐");
val4.put("color", "#173177");
data.put("remark", val4);
String template_id = "UU5SZ2nbYll-jnvnqh26XkdT-d1e7G7PvhZ1LnbIHgs";
System.out.println("MsgUtil.main()" + sendNotice("o5NOXv3kwodBUaM3shb2GU_kLmeQ", "", data,null, template_id));
} catch (Exception localException) {
}
}
public static String sendText(String openid, String content) throws Exception {
String token = getToken();
if (token != null) {
Map parameters = new HashMap();
parameters.put("touser", openid);
parameters.put("msgtype", "text");
Map text = new HashMap();
text.put("content", content);
parameters.put("text", text);
String str = HttpUtils.doPostBybody(msgapi + token, parameters);
com.alibaba.fastjson.JSONObject json = JSON.parseObject(str);
if (json.get("errcode").toString().equals("0")) {
return "0";
}
return json.get("errmsg").toString();
}
return "token失败";
}
public static String sendUrl(String openid, Map news) throws Exception {
String token = getToken();
if (token != null) {
Map parameters = new HashMap();
parameters.put("touser", openid);
parameters.put("msgtype", "news");
parameters.put("news", news);
String str = HttpUtils.doPostBybody(msgapi + token, parameters);
com.alibaba.fastjson.JSONObject json = JSON.parseObject(str);
if (json.get("errcode").toString().equals("0")) {
return "0";
}
return json.get("errmsg").toString();
}
return "token失败";
}
public static String sendNotice(String openid, String url, Map data,Map miniprogram, String template_id) throws Exception {
String token = getToken();
if (token != null) {
Map parameters = new HashMap();
parameters.put("touser", openid);
parameters.put("template_id", template_id);
parameters.put("url", url);
if (miniprogram!=null) {
parameters.put("miniprogram", miniprogram);
}
parameters.put("data", data);
String str = HttpUtils.doPostBybody(nmsgapi + token, parameters);
com.alibaba.fastjson.JSONObject json = JSON.parseObject(str);
if (json.get("errcode").toString().equals("0")) {
return "0";
}
return json.get("errmsg").toString();
}
return "token失败";
}
public static String sendXcxNotice(String openid, String url,String formid, Map data, String template_id) throws Exception {
//String token = getToken();
String token = getWXxcxtoken();
if (token != null) {
Map parameters = new HashMap();
parameters.put("touser", openid);
parameters.put("template_id", template_id);
parameters.put("form_id", formid);
parameters.put("page", url);
parameters.put("data", data);
String str = HttpUtils.doPostBybody(xcxnmsgapi + token, parameters);
com.alibaba.fastjson.JSONObject json = JSON.parseObject(str);
if (json.get("errcode").toString().equals("0")) {
return "0";
}
return json.get("errmsg").toString();
}
return "token失败";
}
public static String getToken() throws Exception {
String token = "";
if ((token == null) || ("".equals(token))) {
Map json = getAccessToken();
if (json.get("access_token") != null) {//缓存token,避免重复请求
//redisUtils.set("wxaccess_token", json.get("access_token").toString(), 5400L,TimeUnit.SECONDS);
return json.get("access_token").toString();
}
log.error("获取微信token失败:" + json.get("errmsg"));
return null;
}
return token;
}
public static Map getAccessToken() {
StringBuilder url = new StringBuilder();
url.append("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + APPID + "&secret="
+ APPSECRET);
return JsonUtils.jsonToMap(HttpUtils.doGet(url.toString()));
}
public static String getWXxcxtoken() {
String token = "";
if ((token == null) || ("".equals(token))) {
Map json = getXcxAccessToken();
if (json.get("access_token") != null) {
return json.get("access_token").toString();
}
log.error("获取微信token失败:" + json.get("errmsg"));
return null;
}
return token;
}
public static Map getXcxAccessToken() {
StringBuilder url = new StringBuilder();
url.append("https://api.weixin.qq.com/cgi-bin/token?
没有合适的资源?快使用搜索试试~ 我知道了~
java毕业设计 基于SpringBoot+Mybatis的学校管理系统的设计与实现+详细文档+全部资料(优秀项目).zip
共1816个文件
js:478个
xml:402个
html:223个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 134 浏览量
2024-04-17
10:51:13
上传
评论
收藏 14.2MB ZIP 举报
温馨提示
【资源说明】 java毕业设计 基于SpringBoot+Mybatis的学校管理系统的设计与实现+详细文档+全部资料(优秀项目).zipjava毕业设计 基于SpringBoot+Mybatis的学校管理系统的设计与实现+详细文档+全部资料(优秀项目).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕设项目、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 3、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
java毕业设计 基于SpringBoot+Mybatis的学校管理系统的设计与实现+详细文档+全部资料(优秀项目).zip (1816个子文件)
layer.js.bkb 19KB
CHANGES 3KB
bootstrap.min.css 147KB
summernote-bs3.css 143KB
style.css 134KB
bootstrap.min.css 118KB
bootstrap.css 118KB
bootstrap.min.css 98KB
layui.css 68KB
animate.css 64KB
layui.css 57KB
animate.min.css 52KB
datepicker3.css 33KB
font-awesome.css 32KB
bootstrap-rtl.css 31KB
font-awesome.min.css 30KB
ambiance.css 25KB
style-common.css 25KB
style.min.css 25KB
global.css 25KB
admin.css 24KB
sweetalert.css 18KB
simditor.css 17KB
ui.jqgrid.css 16KB
layer.css 16KB
summernote-0.8.8.css 15KB
layer.css 15KB
bootstrap-theme.css 15KB
layer.css 14KB
jasny-bootstrap.min.css 14KB
layer.css 14KB
jquery-ui-1.10.4.custom.min.css 14KB
bootstrap-theme.min.css 13KB
chosen.css 12KB
dropzone.css 11KB
layer.css 11KB
layim.css 11KB
layui.mobile.css 11KB
fullcalendar.css 11KB
template.css 11KB
summernote.css 10KB
plyr.css 10KB
layui.mobile.css 10KB
style-editor.css 10KB
clean-blog.css 9KB
awesome.css 8KB
style.css 8KB
clean-blog.min.css 8KB
webuploader-demo.css 7KB
ng-grid-2.0.7.min.css 7KB
laydate.css 7KB
codemirror.css 7KB
blueimp-gallery.min.css 7KB
awesome-bootstrap-checkbox.css 7KB
toastr.min.css 7KB
jquery.contextMenu.min.css 6KB
metroStyle.css 6KB
jquery.contextMenu.css 6KB
bootstrap-table.min.css 6KB
laydate.css 6KB
laydate.css 6KB
layer.css 6KB
blueimp-gallery.css 6KB
jquery.steps.css 6KB
daterangepicker-bs3.css 5KB
daterangepicker-bs3.css 5KB
footable.core.css 5KB
layer.css 5KB
jquery.fancybox.css 5KB
dataTables.bootstrap.css 5KB
cropper.css 4KB
login.css 4KB
clockpicker.css 4KB
basic.css 4KB
style.css 4KB
bootstrap-colorpicker.min.css 3KB
laydate.css 3KB
laydate.css 3KB
ion.rangeSlider.css 3KB
gg-bootdo.css 3KB
style.css 3KB
common.css 3KB
editor.css 3KB
jquery.nouislider.css 3KB
layer.ext.css 3KB
style.css 3KB
bootstrap-markdown.min.css 3KB
jquery.gritter.css 3KB
style.css 2KB
login.css 2KB
blueimp-gallery-video.css 2KB
jasmine.css 2KB
ion.rangeSlider.skinFlat.css 2KB
bootstrap-duallistbox.css 2KB
blueimp-gallery-indicator.css 2KB
custom.css 1KB
bootstrap-multiselect.css 1KB
jquery.treegrid.css 1KB
code.css 1KB
bootstrap-treeview.css 1KB
共 1816 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19
资源评论
不走小道
- 粉丝: 3221
- 资源: 5113
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MySQL开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- MATLAB仿真案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- MATLAB优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- 4319447015972566022ssm城市交通海量数据管理系统.zip
- 前端开发实例优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- Screenshot_20240601_132217.jpg
- Screenshot_20240601_132233.jpg
- Screenshot_20240601_132255.jpg
- Screenshot_20240601_132403.jpg
- Swift语言优质学习资料资源工具与案列应用场景开发文档教程资料.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功