admin
2021-02-06 d1f26741bddf6f512d62c0100d42c52be8d37e76
utils/src/main/java/org/yeshi/utils/wx/XCXKeFuUtil.java
@@ -1,91 +1,91 @@
package org.yeshi.utils.wx;
import java.io.File;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.yeshi.utils.HttpUtil;
import net.sf.json.JSONObject;
//小程序客服消息处理
public class XCXKeFuUtil {
   public final static String TYPE_IMAGE = "image";
   public static JSONObject parseHuiHuaMsg(HttpServletRequest request, String xmlContent, String token,
         String encodingASEKey, String appId) {
      String msgSignature = request.getParameter("msg_signature");
      String timeStamp = request.getParameter("timestamp");
      String nonce = request.getParameter("nonce");
      JSONObject root = new JSONObject();
      Map<String, String> map = WXUtil.parseXML(xmlContent, msgSignature, timeStamp, nonce, token, encodingASEKey,
            appId);
      JSONObject data = new JSONObject();
      data.put("openid", map.get("FromUserName"));
      data.put("ghid", map.get("ToUserName"));
      data.put("sessionFrom", map.get("SessionFrom"));
      root.put("data", data);
      if ("user_enter_tempsession".equalsIgnoreCase(map.get("Event"))) {
         root.put("code", 0);// 进入会话事件
      } else
         root.put("code", 1);// 其他事件
      return root;
   }
   private static boolean sendMsg(String acessToken, JSONObject data) {
      String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + acessToken;
      String result = HttpUtil.post(url, data.toString());
      return true;
   }
   public static String uploadFile(String accessToken, String type, File f) {
      String url = String.format("https://api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s",
            accessToken, type);
      String result = HttpUtil.post(url, "media", f);
      JSONObject resultObject = JSONObject.fromObject(result);
      return resultObject.optString("media_id");
   }
   // 发送文字消息
   public static boolean sendTextMsg(String acessToken, String openId, String text) {
      JSONObject data = new JSONObject();
      data.put("touser", openId);
      data.put("msgtype", "text");
      JSONObject textObject = new JSONObject();
      textObject.put("content", text);
      data.put("text", textObject);
      return sendMsg(acessToken, data);
   }
   // 发送图片消息
   public static boolean sendImageMsg(String acessToken, String openId, String mediaId) {
      JSONObject data = new JSONObject();
      data.put("touser", openId);
      data.put("msgtype", "image");
      JSONObject imageObject = new JSONObject();
      imageObject.put("media_id", mediaId);
      data.put("image", imageObject);
      return sendMsg(acessToken, data);
   }
   // 发送图文消息
   public static boolean sendTextImageMsg(String acessToken, String openId, String title, String desc, String url,
         String thumbUrl) {
      JSONObject data = new JSONObject();
      data.put("touser", openId);
      data.put("msgtype", "link");
      JSONObject linkObject = new JSONObject();
      linkObject.put("title", title);
      linkObject.put("description", desc);
      linkObject.put("url", url);
      linkObject.put("thumb_url", thumbUrl);
      data.put("link", linkObject);
      return sendMsg(acessToken, data);
   }
}
package org.yeshi.utils.wx;
import java.io.File;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.yeshi.utils.HttpUtil;
import net.sf.json.JSONObject;
//小程序客服消息处理
public class XCXKeFuUtil {
   public final static String TYPE_IMAGE = "image";
   public static JSONObject parseHuiHuaMsg(HttpServletRequest request, String xmlContent, String token,
         String encodingASEKey, String appId) {
      String msgSignature = request.getParameter("msg_signature");
      String timeStamp = request.getParameter("timestamp");
      String nonce = request.getParameter("nonce");
      JSONObject root = new JSONObject();
      Map<String, String> map = WXUtil.parseXML(xmlContent, msgSignature, timeStamp, nonce, token, encodingASEKey,
            appId);
      JSONObject data = new JSONObject();
      data.put("openid", map.get("FromUserName"));
      data.put("ghid", map.get("ToUserName"));
      data.put("sessionFrom", map.get("SessionFrom"));
      root.put("data", data);
      if ("user_enter_tempsession".equalsIgnoreCase(map.get("Event"))) {
         root.put("code", 0);// 进入会话事件
      } else
         root.put("code", 1);// 其他事件
      return root;
   }
   private static boolean sendMsg(String acessToken, JSONObject data) {
      String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + acessToken;
      String result = HttpUtil.post(url, data.toString());
      return true;
   }
   public static String uploadFile(String accessToken, String type, File f) {
      String url = String.format("https://api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s",
            accessToken, type);
      String result = HttpUtil.post(url, "media", f);
      JSONObject resultObject = JSONObject.fromObject(result);
      return resultObject.optString("media_id");
   }
   // 发送文字消息
   public static boolean sendTextMsg(String acessToken, String openId, String text) {
      JSONObject data = new JSONObject();
      data.put("touser", openId);
      data.put("msgtype", "text");
      JSONObject textObject = new JSONObject();
      textObject.put("content", text);
      data.put("text", textObject);
      return sendMsg(acessToken, data);
   }
   // 发送图片消息
   public static boolean sendImageMsg(String acessToken, String openId, String mediaId) {
      JSONObject data = new JSONObject();
      data.put("touser", openId);
      data.put("msgtype", "image");
      JSONObject imageObject = new JSONObject();
      imageObject.put("media_id", mediaId);
      data.put("image", imageObject);
      return sendMsg(acessToken, data);
   }
   // 发送图文消息
   public static boolean sendTextImageMsg(String acessToken, String openId, String title, String desc, String url,
         String thumbUrl) {
      JSONObject data = new JSONObject();
      data.put("touser", openId);
      data.put("msgtype", "link");
      JSONObject linkObject = new JSONObject();
      linkObject.put("title", title);
      linkObject.put("description", desc);
      linkObject.put("url", url);
      linkObject.put("thumb_url", thumbUrl);
      data.put("link", linkObject);
      return sendMsg(acessToken, data);
   }
}