客服消息跳转自动回复

客服消息主动发送

客服消息跳转自动回复

/**
     * 客服消息会话跳转直接回复方法
     * @param type 消息类型 文本消息:"text"  图片消息:"image"  图文链接:"link"  小程序卡片:"miniprogrampage"
     * @param openId 用户openId
     * @param jsonObject 各个消息类型对象JSON字符串  使用方法: JSON.toJSONString()
     * @return
     */
    public static Integer sendCustomerMsg(String type, String openId, String jsonObject) throws IOException {
        //获取accessToken
        String accessToken = ImgQrCodeUtil.getAccessToken();
        if(StringUtils.isEmpty(accessToken)){
              return null;
        }
        //发送文本消息
        CustomerServiceMessage customerServiceMessage = new CustomerServiceMessage();
        customerServiceMessage.setTouser(openId);
        customerServiceMessage.setMsgt(type);
        switch (type){
            case WxConsts.KefuMsgType.TEXT:
                TextDTO textDTO = JSON.parseObject(jsonObject, TextDTO.class);
                customerServiceMessage.setText(textDTO);
                break;
            case WxConsts.KefuMsgType.LINK:
                LinkDTO linkDTO = JSON.parseObject(jsonObject, LinkDTO.class);
                customerServiceMessage.setLink(linkDTO);
                break;
            case WxConsts.KefuMsgType.IMAGE:
                ImageDTO imageDTO = JSON.parseObject(jsonObject, ImageDTO.class);
                customerServiceMessage.setImage(imageDTO);
                break;
            case WxConsts.KefuMsgType.MINIPROGRAMPAGE:
                MiniprogrampageDTO miniprogrampageDTO = JSON.parseObject(jsonObject, MiniprogrampageDTO.class);
                customerServiceMessage.setMiniprogrampage(miniprogrampageDTO);
                break;
        }

        //调取微信接口
        String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + accessToken;
        //发送请求
        String sr = MessageUtil.sendPostJsonStr(url, JSONObject.toJSONString(customerServiceMessage));

        //解析相应内容(转换成json对象)
        JSONObject json = JSON.parseObject(sr);
        //获取返参内容
        Integer errcode = (Integer) json.get("errcode");
        String errmsg = (String) json.get("errmsg");
        log.info("调取客服会话回复接口返参 -------> errcode:{}, errmsg:{}", errcode, errmsg);
        return errcode;
    }

TextDTO

package com.xybsyw.school.facade.dto.customerservice;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * 客服消息:文本消息实体
 * Created by chenyiyi
 * Date: 2021/4/26
 * Time: 2:41 下午
 */
@Data
@AllArgsConstructor
public class TextDTO {

    /**
     * 文本消息内容
     */
    private String content;
}

LinkDTO

package com.xybsyw.school.facade.dto.customerservice;

import lombok.AllArgsConstructor;
import lombok.Data;
import org.checkerframework.checker.units.qual.A;

/**
 * 图文链接实体
 * Created by chenyiyi
 * Date: 2021/4/26
 * Time: 2:42 下午
 */
@Data
@AllArgsConstructor
public class LinkDTO {

    /**
     * 消息标题
     */
    private String title;

    /**
     * 图文链接消息
     */
    private String description;

    /**
     * url
     */
    private String url;

    /**
     * 图文链接消息的图片链接 支持 JPG、PNG 格式,较好的效果为大图 640 X 320,小图 80 X 80
     */
    private String thumb_url;

}

ImageDTO

package com.xybsyw.school.facade.dto.customerservice;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * 图片结构实体
 * Created by chenyiyi
 * Date: 2021/4/26
 * Time: 2:41 下午
 */
@Data
@AllArgsConstructor
public class ImageDTO {

    /**
     * 发送的图片的媒体ID,通过 新增素材接口 上传图片文件获得。
     */
    private String media_id;
}

MiniprogrampageDTO

package com.xybsyw.school.facade.dto.customerservice;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * 客服消息:小程序卡片实体
 * Created by chenyiyi
 * Date: 2021/4/26
 * Time: 2:44 下午
 */
@Data
@AllArgsConstructor
public class MiniprogrampageDTO {

    /**
     * 消息标题
     */
    private String title;

    /**
     * 小程序的页面路径,跟app.json对齐,支持参数,比如pages/index/index?foo=bar
     */
    private String pagepath;

    /**
     * 小程序消息卡片的封面, image 类型的 media_id,通过 新增素材接口 上传图片文件获得,建议大小为 520*416
     */
    private String thumb_media_id;
}

上一篇:简化开发|Lombok神器带你消除冗余代码


下一篇:lombok的@Data注解的使用