首页 > 代码库 > 微信公众号发送消息之发送客服消息基类封装

微信公众号发送消息之发送客服消息基类封装

微信公众号发送消息之发送客服消息基类封装

当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

各消息类型所需的JSON数据包封装如下如下:

package org.oms.wechat.message;import java.util.List;import org.oms.wechat.enums.EnumMessageType;import org.oms.wechat.message.resp.Article;import net.sf.json.JSONArray;import net.sf.json.JSONObject;/** * 发送客服消息基类 *  * @author sunlight * */public class CustomMessage {    /**     * 文本客服消息     *      * @param openId     *            消息接收者openId     * @param content     *            文本消息内容     * @return     */    public static String TextMsg(String openId, String content) {        JSONObject jo = new JSONObject();        jo.put("touser", openId);        jo.put("msgtype", EnumMessageType.text.name());        JSONObject joContent = new JSONObject();        joContent.put("content", content);        jo.put("text", joContent);        return jo.toString();    }    /**     * 图片客服消息     *      * @param openId     *            消息接收者openId     * @param mediaId     *            媒体文件id     * @return     */    public static String ImageMsg(String openId, String mediaId) {        JSONObject jo = new JSONObject();        jo.put("touser", openId);        jo.put("msgtype", EnumMessageType.image.name());        JSONObject joMedia = new JSONObject();        joMedia.put("media_id", mediaId);        jo.put("image", joMedia);        return jo.toString();    }    /**     * 语音客服消息     *      * @param openId     *            消息接收者openId     * @param mediaId     *            媒体文件id     * @return     */    public static String VoiceMsg(String openId, String mediaId) {        JSONObject jo = new JSONObject();        jo.put("touser", openId);        jo.put("msgtype", EnumMessageType.voice.name());        JSONObject joMedia = new JSONObject();        joMedia.put("media_id", mediaId);        jo.put("voice", joMedia);        return jo.toString();    }    /**     *      * 视频客服消息     *      * @param openId     *            消息接收者openId     * @param mediaId     *            媒体文件id     * @param thumb_media_id     *            缩略图的媒体ID     * @param title     *            视频消息的标题(非必须)     * @param description     *            视频消息的描述(非必须)     * @return     */    public static String VideoMsg(String openId, String mediaId,            String thumb_media_id, String title, String description) {        JSONObject jo = new JSONObject();        jo.put("touser", openId);        jo.put("msgtype", EnumMessageType.video.name());        JSONObject joMedia = new JSONObject();        joMedia.put("media_id", mediaId);        joMedia.put("thumb_media_id", thumb_media_id);        joMedia.put("title", title);        joMedia.put("description", description);        jo.put("video", joMedia);        return jo.toString();    }    /**     *      * 视频客服消息     *      * @param openId     *            消息接收者openId     * @param mediaId     *            媒体文件id     * @param thumb_media_id     *            缩略图的媒体ID     * @return     */    public static String VideoMsg(String openId, String mediaId,            String thumb_media_id) {        JSONObject jo = new JSONObject();        jo.put("touser", openId);        jo.put("msgtype", EnumMessageType.video.name());        JSONObject joMedia = new JSONObject();        joMedia.put("media_id", mediaId);        joMedia.put("thumb_media_id", thumb_media_id);        joMedia.put("title", "");        joMedia.put("description", "");        jo.put("video", joMedia);        return jo.toString();    }    /**     *      * 音乐客服消息     *      * @param openId     *            消息接收者openId     * @param mediaId     *            媒体文件id     * @param thumb_media_id     *            缩略图的媒体ID     * @param title     *            音乐消息的标题(非必须)     * @param description     *            音乐消息的描述(非必须)     * @param musicurl     *            音乐链接     * @param hqmusicurl     *            高品质音乐链接,wifi环境优先使用该链接播放音乐     * @param thumb_media_id     *            缩略图的媒体ID     * @return     */    public static String MusicMsg(String openId, String title,            String description, String musicurl, String hqmusicurl,            String thumb_media_id) {        JSONObject jo = new JSONObject();        jo.put("touser", openId);        jo.put("msgtype", EnumMessageType.music.name());        JSONObject joMedia = new JSONObject();        joMedia.put("title", title);        joMedia.put("description", description);        joMedia.put("musicurl", musicurl);        joMedia.put("hqmusicurl", hqmusicurl);        joMedia.put("thumb_media_id", thumb_media_id);        jo.put("music", joMedia);        return jo.toString();    }    /**     *      * 音乐客服消息     *      * @param openId     *            消息接收者openId     * @param mediaId     *            媒体文件id     * @param thumb_media_id     *            缩略图的媒体ID     * @param musicurl     *            音乐链接     * @param hqmusicurl     *            高品质音乐链接,wifi环境优先使用该链接播放音乐     * @param thumb_media_id     *            缩略图的媒体ID     * @return     */    public static String MusicMsg(String openId, String musicurl,            String hqmusicurl, String thumb_media_id) {        JSONObject jo = new JSONObject();        jo.put("touser", openId);        jo.put("msgtype", EnumMessageType.music.name());        JSONObject joMedia = new JSONObject();        joMedia.put("title", "");        joMedia.put("description", "");        joMedia.put("musicurl", musicurl);        joMedia.put("hqmusicurl", hqmusicurl);        joMedia.put("thumb_media_id", thumb_media_id);        jo.put("music", joMedia);        return jo.toString();    }    /**     * 发送图文客服消息     *      * @param openId     *            消息接收者openId     * @param articles     *            图文消息列表     * @return     */    public static String NewsMsg(String openId, List<Article> articles) {        JSONObject jo = new JSONObject();        jo.put("touser", openId);        jo.put("msgtype", EnumMessageType.news.name());        JSONObject joMedia = new JSONObject();        JSONArray ja = new JSONArray();        for (Article article : articles) {            JSONObject joChild = new JSONObject();            joChild.put("title", article.getTitle());            joChild.put("description", article.getDescription());            joChild.put("url", article.getUrl());            joChild.put("picurl", article.getPicUrl());            ja.add(joChild);        }        joMedia.put("articles", ja);        jo.put("news", joMedia);        return jo.toString();    }}


个人笔记~~


微信公众号发送消息之发送客服消息基类封装