完成基本京粉功能推送,订单统计,订单拉取的稳定版初版
This commit is contained in:
242
src/main/java/cn/van/business/util/WXUtil.java
Normal file
242
src/main/java/cn/van/business/util/WXUtil.java
Normal file
@@ -0,0 +1,242 @@
|
||||
package cn.van.business.util;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.van.business.enums.WXReqType;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* @author Leo
|
||||
* @version 1.0
|
||||
* @create 2023/12/22 0022 上午 09:59
|
||||
* @description:
|
||||
*/
|
||||
@Component
|
||||
public class WXUtil {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(WXUtil.class);
|
||||
public static final String super_admin_wxid = "wxid_ytpc72mdoskt22";
|
||||
/**
|
||||
* url http://127.0.0.1:7777/DaenWxHook/httpapi/
|
||||
* 获取微信列表 (X0000)
|
||||
* 微信状态检测(Q0000)
|
||||
* 发送文本消息(Q0001)
|
||||
* 修改下载图片 (Q0002)
|
||||
* 获取个人信息 (Q0003)
|
||||
* 查询对象信(Q0004)
|
||||
* 获取好友列表(Q0005)
|
||||
* 获取群聊列表(Q0006)
|
||||
* 获取公众号列表(Q0007)
|
||||
* 获取群成员列表(Q0008)
|
||||
* 发送聊天记录(Q0009)
|
||||
* 发送图片 (Q0010)
|
||||
* 发送本地文件(Q0011)
|
||||
* 发送分享链接(Q0012)
|
||||
* 发送小程序(Q0013)
|
||||
* 发送音乐分享(Q0014)
|
||||
* 发送XML (Q0015)
|
||||
* 确认收款 (Q0016)
|
||||
* 同意好友请求(Q0017)
|
||||
* 添加好友通过v3(Q0018)
|
||||
* 添加好友_通过wxid (Q0019)
|
||||
* 查询陌生人信息(Q0020)
|
||||
* 邀请进群(Q0021)
|
||||
* 删除好友(Q0022)
|
||||
* 修改对象备注(Q0023)
|
||||
* 修改群聊名称(Q0024)
|
||||
* 发送名片(Q0025)
|
||||
*/
|
||||
public static String WX_BASE_URL;
|
||||
private Environment env;
|
||||
|
||||
@Autowired
|
||||
public WXUtil(Environment env) {
|
||||
this.env = env;
|
||||
WX_BASE_URL = env.getProperty("config.WX_BASE_URL");
|
||||
System.out.println("WX_BASE_URL:" + WX_BASE_URL);
|
||||
}
|
||||
|
||||
// 获取微信列表
|
||||
public JSONObject getWxList() {
|
||||
WxReqDate wxReqDate = createWxReqData(WXReqType.GET_WX_LIST);
|
||||
String responseStr = HttpRequest.post(WX_BASE_URL).body(JSON.toJSONString(wxReqDate)).execute().body();
|
||||
if (ObjectUtil.isNotEmpty(responseStr)) {
|
||||
return JSON.parseObject(responseStr);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 发送文本消息 msgType 1:私聊 2:群发
|
||||
public JSONObject sendTextMessage(String wxid, String content, Integer msgType, String fromwxid) {
|
||||
// 全部打印
|
||||
logger.info("发送文本消息 msgType: " + msgType + " wxid: " + wxid + " fromwxid: " + fromwxid + " content: " + content);
|
||||
// 如果是自己的微信,所有信息都加上少爷
|
||||
if (wxid.equals(super_admin_wxid) || fromwxid.equals(super_admin_wxid)) {
|
||||
content = "超管: 凡 !\r\n" + content;
|
||||
}
|
||||
//JSONObject wxList = getWxList();
|
||||
//JSONObject wxBotInfo = (JSONObject) wxList.getJSONArray("result").get(0);
|
||||
//botWxid = wxBotInfo.getString("wxid");
|
||||
//
|
||||
////
|
||||
//WxReqDate wxReqDate = createWxReqData(WXReqType.SEND_TEXT_MESSAGE);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("type", WXReqType.SEND_TEXT_MESSAGE.getType());
|
||||
//if ((msgType.equals(1))) {
|
||||
// jsonObject.put("wxid", wxid);
|
||||
// content = content;
|
||||
//}
|
||||
////[@,wxid=对象wxid,nick=对象昵称,isAuto=true]
|
||||
//if ((msgType.equals(2))) {
|
||||
// jsonObject.put("wxid", fromwxid);
|
||||
// content = "[@,wxid=" + wxid + ",nick=6,isAuto=true] " + content;
|
||||
//}
|
||||
/*
|
||||
* {
|
||||
"wxid": "filehelper",
|
||||
"msg": "666大佬~"
|
||||
}*/
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("msg", content);
|
||||
data.put("wxid", wxid);
|
||||
jsonObject.put("data", data);
|
||||
|
||||
System.out.println(JSON.toJSONString(jsonObject));
|
||||
//wxReqDate.setData(jsonObject);
|
||||
while (Util.isNotEmpty(wxid)) {
|
||||
String responseStr = HttpRequest.post(WX_BASE_URL).body(JSON.toJSONString(jsonObject)).execute().body();
|
||||
if (ObjectUtil.isNotEmpty(responseStr)) {
|
||||
JSONObject response = JSON.parseObject(responseStr);
|
||||
//WxResponse wxResponse = JSON.parseObject(responseStr, WxResponse.class);
|
||||
//System.out.println(wxResponse);
|
||||
//if (Objects.equals(String.valueOf(wxResponse.getCode()), "200")) {
|
||||
// return wxResponse.getData();
|
||||
//}
|
||||
//JSONObject jsonObject = HttpUtil.sendPost(url, wxReqDate.getData());
|
||||
logger.info("消息响应:" + response.toString());
|
||||
return response;
|
||||
}
|
||||
try {
|
||||
Thread.sleep(3000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//private JSONObject sendWxReq(WxReqDate wxReqDate) {
|
||||
// if (wxReqDate == null) {
|
||||
// return null;
|
||||
// } else {
|
||||
// logger.info("wxReqDate: {}", wxReqDate);
|
||||
//
|
||||
// String responseStr = HttpRequest.post(WX_BASE_URL).body(JSON.toJSONString(wxReqDate)).execute().body();
|
||||
// if (ObjectUtil.isNotEmpty(responseStr)) {
|
||||
// JSONObject jsonObject = JSON.parseObject(responseStr);
|
||||
// //WxResponse wxResponse = JSON.parseObject(responseStr, WxResponse.class);
|
||||
// //System.out.println(wxResponse);
|
||||
// //if (Objects.equals(String.valueOf(wxResponse.getCode()), "200")) {
|
||||
// // return wxResponse.getData();
|
||||
// //}
|
||||
// //JSONObject jsonObject = HttpUtil.sendPost(url, wxReqDate.getData());
|
||||
// return jsonObject;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return null;
|
||||
// }
|
||||
//}
|
||||
|
||||
/**
|
||||
* {
|
||||
* "type": "Q0016",
|
||||
* "data": {
|
||||
* "wxid": "wxid_3sx9sjgq99kd22",
|
||||
* "transferid": "1000050001202207161417697440336"
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
public JSONObject queRenShouKuan(String wxid, String transferid) {
|
||||
String botWxid = "";
|
||||
JSONObject wxList = getWxList();
|
||||
JSONObject wxBotInfo = (JSONObject) wxList.getJSONArray("result").get(0);
|
||||
botWxid = wxBotInfo.getString("wxid");
|
||||
WxReqDate wxReqDate = createWxReqData(WXReqType.CONFIRM_RECEIPT);
|
||||
HashMap<String, String> body = new HashMap<>();
|
||||
body.put("wxid", wxid);
|
||||
body.put("transferid", transferid);
|
||||
JSONObject jsonObject = new JSONObject(body);
|
||||
wxReqDate.setData(jsonObject);
|
||||
String responseStr = HttpRequest.post(WX_BASE_URL + "?wxid=" + botWxid).body(JSON.toJSONString(wxReqDate)).execute().body();
|
||||
logger.info("确认收款结果:responseStr: {}", responseStr);
|
||||
if (ObjectUtil.isNotEmpty(responseStr)) {
|
||||
return JSON.parseObject(responseStr);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public WxReqDate createWxReqData(WXReqType wxReqType) {
|
||||
|
||||
WxReqDate wxReqDate = new WxReqDate(wxReqType.getType(), null);
|
||||
|
||||
return wxReqDate;
|
||||
}
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
private class WxResponse {
|
||||
/**
|
||||
* {
|
||||
* "code": 200,
|
||||
* "msg": "操作成功",
|
||||
* "result": {},
|
||||
* "wxid": "wxid_3sq4tklb6c3121",
|
||||
* "port": 7305,
|
||||
* "pid": 12384,
|
||||
* "flag": "7777",
|
||||
* "timestamp": "1657462661814"
|
||||
* }
|
||||
*/
|
||||
private Integer code;
|
||||
private String msg;
|
||||
private JSONObject result;
|
||||
private String wxid;
|
||||
private Integer port;
|
||||
private Integer pid;
|
||||
private String flag;
|
||||
private String timestamp;
|
||||
}
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
private class WxReqDate {
|
||||
//{
|
||||
// "type": "X0000",
|
||||
// "data": {}
|
||||
//}
|
||||
private String type;
|
||||
private JSONObject data;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user