From 628bf8f676f12ce072d1c008e425e429c207c3e6 Mon Sep 17 00:00:00 2001 From: zhangye <654600784@qq.com> Date: Wed, 27 Apr 2022 22:50:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=AE=E4=BF=A1=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=92=8C=E6=B6=88=E6=81=AF=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ccsens/util/wx/WxGzhUtil.java | 8 ++-- .../ccsens/wechatutil/util/WxConstant.java | 4 +- .../OfficialAccountMessageUtil.java | 37 +++++++++++++++++++ 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/util/src/main/java/com/ccsens/util/wx/WxGzhUtil.java b/util/src/main/java/com/ccsens/util/wx/WxGzhUtil.java index 42c298a..fd6504d 100644 --- a/util/src/main/java/com/ccsens/util/wx/WxGzhUtil.java +++ b/util/src/main/java/com/ccsens/util/wx/WxGzhUtil.java @@ -78,11 +78,9 @@ public class WxGzhUtil { = "https://api.weixin.qq.com/sns/userinfo?access_token=%1$s&openid=%2$s"; public static final String MESSAGE_TEMPLATE_SEND = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%1$s"; -// private static final String APPID = "wx7af1bf1e14facf82"; -// private static final String SECRET = "a6613fae11b497639c0224b820aaf6d9"; - // TODO ;临时更换默认appId - private static final String APPID = "wxcb60fcfeaddeb3e3"; - private static final String SECRET = "e6d27d1b2a0a89b16ec61fdb5e628034"; + private static final String APPID = "wx7af1bf1e14facf82"; + private static final String SECRET = "a6613fae11b497639c0224b820aaf6d9"; + private static final String APPID_H5_TEST = "wxd1842e073e0e6d91"; diff --git a/wechatutil/src/main/java/com/ccsens/wechatutil/util/WxConstant.java b/wechatutil/src/main/java/com/ccsens/wechatutil/util/WxConstant.java index 7a2ff0a..767e804 100644 --- a/wechatutil/src/main/java/com/ccsens/wechatutil/util/WxConstant.java +++ b/wechatutil/src/main/java/com/ccsens/wechatutil/util/WxConstant.java @@ -20,8 +20,10 @@ public class WxConstant { /*** 公众号获取accessToken */ public static final String URL_GET_OAUTH2_ACCESS_TOKEN = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%1$s&secret=%2$s&code=%3$s&grant_type=authorization_code"; - /*** 公众号发送订阅消息 */ + /*** 公众号通过模板发送订阅消息 */ public static final String MESSAGE_TEMPLATE_SEND = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%1$s"; + /*** 公众号发送订阅消息 */ + public static final String OFFICIAL_MESSAGE_SEND = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=%1$s"; /** 创建二维码 */ public static final String QR_CODE_CREATE = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={}"; /**根据openId获取用户信息*/ diff --git a/wechatutil/src/main/java/com/ccsens/wechatutil/wxofficial/OfficialAccountMessageUtil.java b/wechatutil/src/main/java/com/ccsens/wechatutil/wxofficial/OfficialAccountMessageUtil.java index a14718b..0fee974 100644 --- a/wechatutil/src/main/java/com/ccsens/wechatutil/wxofficial/OfficialAccountMessageUtil.java +++ b/wechatutil/src/main/java/com/ccsens/wechatutil/wxofficial/OfficialAccountMessageUtil.java @@ -2,10 +2,12 @@ package com.ccsens.wechatutil.wxofficial; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.ccsens.util.*; import com.ccsens.util.exception.BaseException; import com.ccsens.wechatutil.bean.dto.WxTemplateMessage; import com.ccsens.wechatutil.bean.po.WxBaseEntity; +import com.ccsens.wechatutil.bean.vo.wxmini.Custom; import com.ccsens.wechatutil.util.WxCodeError; import com.ccsens.wechatutil.util.WxConstant; import com.ccsens.wechatutil.wxcommon.WxCommonUtil; @@ -120,4 +122,39 @@ public class OfficialAccountMessageUtil { throw new BaseException(wxBaseEntity.getErrcode(), wxBaseEntity.getErrmsg()); } } + + + public static WxBaseEntity send(String openId, Custom.Type type, Object data, String appId, String secret){ + log.info("发送客服消息:{},{},{}", openId, type, data); + if (StrUtil.isEmpty(openId) || type == null || data == null) { + throw new BaseException(CodeError.PARAM_ERROR); + } + String url = String.format(WxConstant.OFFICIAL_MESSAGE_SEND, WxCommonUtil.getAccessToken(appId, secret)); + Custom.Message message = new Custom.Message(); + message.setTouser(openId); + message.setMsgtype(type.getType()); + switch (type) { + case IMAGE: + message.setImage((Custom.Image) data); + break; + case TEXT: + message.setText((Custom.Text) data); + break; + case LINK: + message.setLink((Custom.Link) data); + break; + case MINI_PROGRAM_PAGE: + message.setMiniprogrampage((Custom.MiniProgramPage) data); + break; + default: + throw new BaseException(CodeError.PARAM_ERROR); + } + log.info("发送客服消息路径:{}, 请求:{}", url, message); + String result = RestTemplateUtil.postBody(url, message); + log.info("发送客服消息结果:{}", result); + WxBaseEntity wxBaseEntity = JSONObject.parseObject(result, WxBaseEntity.class); + return wxBaseEntity; + } + + }