亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

微信公眾平臺 客服接口發消息的實現代碼(Java接口開發)

2024-05-06 16:50:01
字體:
來源:轉載
供稿:網友

微信公眾平臺技術文檔:客服消息

一、接口說明

當用戶和公眾號產生特定動作的交互時(具體動作列表請見下方說明),微信將會把消息數據推送給開發者,開發者可以在一段時間內(目前修改為48小時)調用客服接口,通過POST一個JSON數據包來發送消息給普通用戶。此接口主要用于客服等有人工消息處理環節的功能,方便開發者為用戶提供更加優質的服務。

目前允許的動作列表如下(公眾平臺會根據運營情況更新該列表,不同動作觸發后,允許的客服接口下發消息條數不同,下發條數達到上限后,會遇到錯誤返回碼,具體請見返回碼說明頁):

1、用戶發送信息
2、點擊自定義菜單(僅有點擊推事件、掃碼推事件、掃碼推事件且彈出“消息接收中”提示框這3種菜單類型是會觸發客服接口的)
3、關注公眾號
4、掃描二維碼
5、支付成功
6、用戶維權

二、客服接口-發消息

1 接口調用請求說明

http請求方式: POST

https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

2 發送客服消息

各消息類型所需的JSON數據包如下:

(1)發送文本消息

{ "touser":"OPENID", "msgtype":"text", "text": {   "content":"Hello World" }}

(2)發送圖片消息

{ "touser":"OPENID", "msgtype":"image", "image": {  "media_id":"MEDIA_ID" }}

(3)發送語音消息

{ "touser":"OPENID", "msgtype":"voice", "voice": {  "media_id":"MEDIA_ID" }}

(4)發送視頻消息

{ "touser":"OPENID", "msgtype":"video", "video": {  "media_id":"MEDIA_ID",  "thumb_media_id":"MEDIA_ID",  "title":"TITLE",  "description":"DESCRIPTION" }}

(5)發送音樂消息

{ "touser":"OPENID", "msgtype":"music", "music": {  "title":"MUSIC_TITLE",  "description":"MUSIC_DESCRIPTION",  "musicurl":"MUSIC_URL",  "hqmusicurl":"HQ_MUSIC_URL",  "thumb_media_id":"THUMB_MEDIA_ID"  }}

(6)發送圖文消息(點擊跳轉到外鏈) 圖文消息條數限制在8條以內,注意,如果圖文數超過8,則將會無響應。

{ "touser":"OPENID", "msgtype":"news", "news":{  "articles": [   {    "title":"Happy Day",    "description":"Is Really A Happy Day",    "url":"URL",    "picurl":"PIC_URL"   },   {    "title":"Happy Day",    "description":"Is Really A Happy Day",    "url":"URL",    "picurl":"PIC_URL"   }   ] }}

(7)發送圖文消息(點擊跳轉到圖文消息頁面) 圖文消息條數限制在8條以內,注意,如果圖文數超過8,則將會無響應。

{ "touser":"OPENID", "msgtype":"mpnews", "mpnews": {   "media_id":"MEDIA_ID" }}

(8)發送卡券

{ "touser":"OPENID",  "msgtype":"wxcard", "wxcard":{       "card_id":"123dsdajkasd231jhksad"     },}

特別注意客服消息接口投放卡券僅支持非自定義Code碼和導入code模式的卡券的卡券,詳情請見:是否自定義code碼。

請注意,如果需要以某個客服帳號來發消息(在微信6.0.2及以上版本中顯示自定義頭像),則需在JSON數據包的后半部分加入customservice參數,例如發送文本消息則改為:

{ "touser":"OPENID", "msgtype":"text", "text": {   "content":"Hello World" }, "customservice": {   "kf_account": "test1@kftest" }}

3 請求參數說明

 

參數 是否必須 說明
access_token 調用接口憑證
touser 普通用戶openid
msgtype 消息類型,文本為text,圖片為image,語音為voice,視頻消息為video,音樂消息為music,圖文消息(點擊跳轉到外鏈)為news,圖文消息(點擊跳轉到圖文消息頁面)為mpnews,卡券為wxcard
content 文本消息內容
media_id 發送的圖片/語音/視頻/圖文消息(點擊跳轉到圖文消息頁)的媒體ID
thumb_media_id 縮略圖的媒體ID
title 圖文消息/視頻消息/音樂消息的標題
description 圖文消息/視頻消息/音樂消息的描述
musicurl 音樂鏈接
hqmusicurl 高品質音樂鏈接,wifi環境優先使用該鏈接播放音樂
url 圖文消息被點擊后跳轉的鏈接
picurl 圖文消息的圖片鏈接,支持JPG、PNG格式,較好的效果為大圖640*320,小圖80*80

 

4 java接口開發

(1)Message客服接口消息封裝對象

public class Message { private String touser; private String msgtype; private TextContent text; private MediaContent image; private MediaContent voice; private MediaContent video; private MusicContent music; private Articles news; public String getTouser() {  return touser; } public void setTouser(String touser) {  this.touser = touser; } public String getMsgtype() {  return msgtype; } public void setMsgtype(String msgtype) {  this.msgtype = msgtype; } public TextContent getText() {  return text; } public void setText(TextContent text) {  this.text = text; } public MediaContent getImage() {  return image; } public void setImage(MediaContent image) {  this.image = image; } public MediaContent getVoice() {  return voice; } public void setVoice(MediaContent voice) {  this.voice = voice; } public MediaContent getVideo() {  return video; } public void setVideo(MediaContent video) {  this.video = video; } public MusicContent getMusic() {  return music; } public void setMusic(MusicContent music) {  this.music = music; } public Articles getNews() {  return news; } public void setNews(Articles news) {  this.news = news; } @Override public String toString() {  return "Message [touser=" + touser + ", msgtype=" + msgtype + ", text="    + text + ", image=" + image + ", voice=" + voice + ", video="    + video + ", music=" + music + ", news=" + news + "]"; }}

(2)TextContent文本消息內容封裝對象

public class TextContent { private String content; public String getContent() {  return content; } public void setContent(String content) {  this.content = content; }}

(3)MediaContent媒體ID封裝對象

public class MediaContent { private String media_id; public String getMedia_id() {  return media_id; } public void setMedia_id(String media_id) {  this.media_id = media_id; }}

(4)MusicContent音樂消息封裝對象

public class MusicContent { private String title; private String description; private String musicurl; private String hqmusicurl; private String thumb_media_id; public String getTitle() {  return title; } public void setTitle(String title) {  this.title = title; } public String getDescription() {  return description; } public void setDescription(String description) {  this.description = description; } public String getMusicurl() {  return musicurl; } public void setMusicurl(String musicurl) {  this.musicurl = musicurl; } public String getHqmusicurl() {  return hqmusicurl; } public void setHqmusicurl(String hqmusicurl) {  this.hqmusicurl = hqmusicurl; } public String getThumb_media_id() {  return thumb_media_id; } public void setThumb_media_id(String thumb_media_id) {  this.thumb_media_id = thumb_media_id; }}

(5)Articles圖文集合封裝對象

public class Articles { private Article[] articles; public Article[] getArticles() {  return articles; } public void setArticles(Article[] articles) {  this.articles = articles; }}

(6)Article圖文消息封裝對象

public class Article { private String title; private String description; private String url; private String picurl; private String thumb_media_id; private String author;  private String content_source_url;  private String content;  private String digest;  private Integer show_cover_pic; public String getTitle() {  return title; } public void setTitle(String title) {  this.title = title; } public String getDescription() {  return description; } public void setDescription(String description) {  this.description = description; } public String getUrl() {  return url; } public void setUrl(String url) {  this.url = url; } public String getPicurl() {  return picurl; } public void setPicurl(String picurl) {  this.picurl = picurl; } public String getThumb_media_id() {  return thumb_media_id; } public void setThumb_media_id(String thumb_media_id) {  this.thumb_media_id = thumb_media_id; } public String getAuthor() {  return author; } public void setAuthor(String author) {  this.author = author; } public String getContent_source_url() {  return content_source_url; } public void setContent_source_url(String content_source_url) {  this.content_source_url = content_source_url; } public String getContent() {  return content; } public void setContent(String content) {  this.content = content; } public String getDigest() {  return digest; } public void setDigest(String digest) {  this.digest = digest; } public Integer getShow_cover_pic() {  return show_cover_pic; } public void setShow_cover_pic(Integer show_cover_pic) {  this.show_cover_pic = show_cover_pic; }}

(7)客服消息請求接口

public class CrmSendMessageService{ private RestTemplate restTemplate ;  private String serviceHost = "https://api.weixin.qq.com"; public CrmSendMessageServiceImpl() {  restTemplate = RestTemplateFactory.makeRestTemplate(); } @Override public WeixinResponse sendMessage(String accessToken, Message message) {  WeixinResponse weixinResponse = null;  String url = new StringBuffer(serviceHost).append("/cgi-bin/message/custom/send?access_token=")    .append(accessToken).toString();  weixinResponse = restTemplate.postForObject(url, message, WeixinResponse.class);  return weixinResponse; }}

注:接口發送http請求基于Spring RestTemplate。 

參考文章地址: 

1.Spring RestTemplate詳解

(8)WeixinResponse客服消息接口返回對象

public class WeixinResponse { private String msgid; private String code; private int errcode; private String errmsg; public String getMsgid() {  return msgid; } public void setMsgid(String msgid) {  this.msgid = msgid; } public int getErrcode() {  return errcode; } public void setErrcode(int errcode) {  this.errcode = errcode; } public String getErrmsg() {  return errmsg; } public void setErrmsg(String errmsg) {  this.errmsg = errmsg; } public String getCode() {  return code; } public void setCode(String code) {  this.code = code; } }

5 接口實例開發

/** * 發送客服消息 * @param openId 要發給的用戶 * @param accessToken 微信公眾號token * @param weixinAppId 微信公眾號APPID */private void sendCustomMessage(String openId,String accessToken,String weixinAppId){  try {   RestTemplate rest = new RestTemplate();   String postUrl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + accessToken;   //推送圖文消息   Message message = new Message();   message.setTouser(openId);//普通用戶openid   message.setMsgtype("news");//圖文消息(點擊跳轉到外鏈)為news   Articles news = new Articles();   Article article = new Article();   article.setDescription("客服消息圖文描述");//圖文消息/視頻消息/音樂消息的描述          article.setPicurl("http://mmbiz.qpic.cn/mmbiz_jpg/CDW6Ticice130g6RcXCkNNDWic4dEaAHQDia2OG5atHBqSvsPuCfuqoyeeLWENia4ciaKt3KHWQ9t2LRPDpUo5AkOyyA/0");//圖文消息的圖片鏈接,支持JPG、PNG格式,較好的效果為大圖640*320,小圖80*80   article.setTitle("客服消息圖文標題");//圖文消息/視頻消息/音樂消息的標題   //圖文推送鏈接   String url="https://www.baidu.com";   article.setUrl(url);//圖文消息被點擊后跳轉的鏈接   Article[] articles = {article};   news.setArticles(articles);   message.setNews(news);   int i=1;   while(i<=3){//循環發送3次    WeixinResponse response = rest.postForObject(postUrl, message, WeixinResponse.class, new HashMap<String,String>());    LOG.info("發送客服消息返回信息:"+response.toString());    if(response.getErrcode()==0){//發送成功-退出循環發送     i=4;     break;    }else{     i++;//發送失敗-繼續循環發送    }   }  } catch (Exception e) {   LOG.error("發送客服消息失敗,openId="+openId,e);  } }

6 客服接口圖文推送上傳圖片

在發送圖文消息時,我們需要添加圖片的地址,介紹一個好方法。 

(1)進入微信公眾平臺接口調試工具 

https://mp.weixin.qq.com/debug

(2)選擇類型和列表 

接口類型:基礎支持 

接口列表:上傳logo接口/media/uploadimg 

微信公眾平臺,客服接口,發消息,代碼

添加access_token,選擇類型是image,最后選擇文件 

注:添加視頻、音樂是一樣的 

(3)最后就會生成圖片的url 

微信公眾平臺,客服接口,發消息,代碼

(4)在瀏覽器訪問url即可看見生成的圖片

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性20hd另类| 九九热精品视频在线播放| 动漫精品一区二区| 国产91免费观看| 黄色一区二区在线观看| 伊人久久精品视频| 日韩av在线直播| 亚洲free性xxxx护士hd| 亚洲成av人影院在线观看| 亚州成人av在线| 欧美日韩裸体免费视频| 亚洲欧美制服另类日韩| 日本午夜在线亚洲.国产| 国产+成+人+亚洲欧洲| 精品久久久国产精品999| 亚洲美女av在线| 自拍偷拍亚洲精品| 91精品国产乱码久久久久久久久| 国产丝袜高跟一区| 日韩在线观看免费高清完整版| 久久久久国产精品www| 92福利视频午夜1000合集在线观看| 在线亚洲欧美视频| 亚洲国产毛片完整版| 欧美激情亚洲自拍| 伊人青青综合网站| 91sao在线观看国产| 另类天堂视频在线观看| 欧美国产中文字幕| 国产美女扒开尿口久久久| 一区二区在线视频| 一区二区亚洲精品国产| 亚洲欧美国产精品久久久久久久| 欧美日韩国产一区二区三区| 久久精品99久久香蕉国产色戒| 国产精品久久久久99| 久久99久久99精品中文字幕| 亚洲欧美日韩一区二区三区在线| 欧美成人激情视频| 亚州成人av在线| 一区二区三区国产在线观看| 日本久久久久久久久久久| 欧美成人精品xxx| 亚洲一区中文字幕在线观看| 亚洲视频在线免费观看| 亚洲天堂网站在线观看视频| 久久综合伊人77777蜜臀| 久久中文久久字幕| 日韩av电影在线免费播放| 国产丝袜高跟一区| 欧美激情第99页| 亚洲第一页在线| 国产午夜精品麻豆| 国产69精品久久久久9999| 久久久久久久久亚洲| 成人av在线亚洲| 在线观看中文字幕亚洲| 国产99视频在线观看| 91亚洲一区精品| 日韩电影免费在线观看| 亚洲美女福利视频网站| 成人网址在线观看| 国产成人综合亚洲| 亚洲国产成人精品一区二区| 亚洲xxxx做受欧美| 欧美日韩另类字幕中文| 欧美精品videosex极品1| 欧美一区二区影院| 538国产精品一区二区在线| 国产精品福利在线观看| 日韩福利伦理影院免费| 日韩欧美有码在线| 91牛牛免费视频| 午夜精品视频网站| 欧美黄色www| 色婷婷久久一区二区| 久久91超碰青草是什么| 久久亚洲国产精品| 91色p视频在线| 精品国产乱码久久久久久婷婷| 亚洲跨种族黑人xxx| 91免费在线视频网站| 在线观看国产成人av片| 国产精品久久久久av免费| 亚洲欧美一区二区三区在线| 亚洲美女av电影| 国产日韩换脸av一区在线观看| 欧美一级片久久久久久久| 亚洲一级黄色av| 欧美亚洲国产成人精品| 欧美性理论片在线观看片免费| 亚洲精品国产精品国自产在线| 91wwwcom在线观看| 欧美成人中文字幕在线| 日韩在线观看网址| 日韩一区二区在线视频| 日韩视频免费观看| 在线观看免费高清视频97| 国产亚洲精品高潮| 91欧美精品午夜性色福利在线| 91中文字幕在线观看| 欧美激情啊啊啊| 2019中文字幕全在线观看| 庆余年2免费日韩剧观看大牛| 日韩av综合网| 91精品久久久久久久久久| 日韩免费观看高清| 日韩国产在线看| 欧美一级淫片videoshd| 中文字幕亚洲无线码a| 亚洲精品一区久久久久久| 欧美国产亚洲视频| 欧美日韩在线一区| 精品亚洲国产成av人片传媒| 亚洲综合中文字幕在线观看| 亚洲国语精品自产拍在线观看| 日韩在线观看免费av| 国产精品视频白浆免费视频| 亚洲网站视频福利| 日韩极品精品视频免费观看| 亚洲天堂视频在线观看| 国产91精品久久久| 久久亚洲一区二区三区四区五区高| 欧美巨乳美女视频| 日韩精品一二三四区| 91精品国产综合久久香蕉922| 亚洲第一黄色网| 成人情趣片在线观看免费| 九九热精品视频| 久久全国免费视频| 成人午夜一级二级三级| 亚洲激情视频在线| 欧美亚洲午夜视频在线观看| 岛国视频午夜一区免费在线观看| 久久精品一区中文字幕| 亚洲高清一区二| 亚洲国产天堂久久国产91| 色老头一区二区三区在线观看| 国产精品欧美激情在线播放| 亚洲国产精品久久久久久| 欧美午夜激情小视频| 亚洲精品网址在线观看| 国内自拍欧美激情| 国产成人在线一区| 亚洲片av在线| 欧美高清自拍一区| 日韩免费观看av| 色综合五月天导航| 日本欧美中文字幕| 曰本色欧美视频在线| 欧美成人精品h版在线观看| 精品欧美激情精品一区| 亚洲影院污污.| 国产精品亚洲激情| 国产欧美日韩中文字幕| 亚洲精品电影久久久| 国产aⅴ夜夜欢一区二区三区| 亚洲综合国产精品| 欧美大片在线看| 日韩欧美在线第一页| www.亚洲天堂| 啊v视频在线一区二区三区| 在线不卡国产精品| 18一19gay欧美视频网站|