当前位置:Gxlcms > JavaScript > 微信公众号 客服接口的开发实例详解

微信公众号 客服接口的开发实例详解

时间:2021-07-01 10:21:17 帮助过:103人阅读

微信平台更新之后,发现客服接口不错。研究了下 和大家分享下。

按照官方文档,是向客服接口发送规定的JSon 就可以了。

首先先封装下 JSon 的类:

  1. package com.lwz.wx.bean.kf;
  2. // 这个是最外层的 也可以说是基类吧、
  3. public class Basebean {
  4. private String touser;
  5. private String msgtype;
  6. public String getTouser() {
  7. return touser;
  8. }
  9. public void setTouser(String touser) {
  10. this.touser = touser;
  11. }
  12. public String getMsgtype() {
  13. return msgtype;
  14. }
  15. public void setMsgtype(String msgtype) {
  16. this.msgtype = msgtype;
  17. }
  18. }
  1. //这个类是继承基类、
  2. package com.lwz.wx.bean.kf;
  3. public class BaseNews extends Basebean{
  4. private Kfnews news;
  5. public Kfnews getNews() {
  6. return news;
  7. }
  8. public void setNews(Kfnews news) {
  9. this.news = news;
  10. }
  11. }
  12. //
  1. package com.lwz.wx.bean.kf;
  2. import java.util.List;
  3. public class Kfnews {
  4. private List<articles> articles;
  5. public List<articles> getArticles() {
  6. return articles;
  7. }
  8. public void setArticles(List<articles> articles) {
  9. this.articles = articles;
  10. }
  11. }
  12. //
  1. package com.lwz.wx.bean.kf;
  2. public class articles {
  3. private String title;
  4. private String description;
  5. private String url;
  6. private String picurl;
  7. public String getTitle() {
  8. return title;
  9. }
  10. public void setTitle(String title) {
  11. this.title = title;
  12. }
  13. public String getDescription() {
  14. return description;
  15. }
  16. public void setDescription(String description) {
  17. this.description = description;
  18. }
  19. public String getUrl() {
  20. return url;
  21. }
  22. public void setUrl(String url) {
  23. this.url = url;
  24. }
  25. public String getPicurl() {
  26. return picurl;
  27. }
  28. public void setPicurl(String picurl) {
  29. this.picurl = picurl;
  30. }
  31. }

以上的结构就对应

接下来就是对JSON 的数据的创建了

  1. package com.lwz.wx.main;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.apache.log4j.Logger;
  5. import net.sf.json.JSONObject;
  6. import com.lwz.wx.bean.AccessToken;
  7. import com.lwz.wx.bean.Articles;
  8. import com.lwz.wx.bean.kf.BaseNews;
  9. import com.lwz.wx.bean.kf.BaseText;
  10. import com.lwz.wx.bean.kf.Basebean;
  11. import com.lwz.wx.bean.kf.Kfnews;
  12. import com.lwz.wx.bean.kf.articles;
  13. import com.lwz.wx.bean.kf.text;
  14. import com.lwz.wx.util.WeixinUtil;
  15. public class KfManager {
  16. private final static Logger log = Logger.getLogger(Basebean.class);
  17. public static void Gotokf(String openid){
  18. String appId =""; //填上自己的APPID 下同 需要认证过的哦
  19. String appSecret="";
  20. // 调用接口获取access_token
  21. AccessToken at = WeixinUtil.getAccessToken(appId, appSecret);
  22. if (null != at) {
  23. // 调用接口发送消息
  24. int result = WeixinUtil.Runkf( getkfnews(openid), at.getToken()); // 这个方法会在下面 展示
  25. //int result = WeixinUtil.createMenu(getMenu(),"1832148947");
  26. // 判断菜单创建结果
  27. if (0 == result)
  28. log.info("调用客服信息发送成功!");
  29. else
  30. log.info("客服调用失败,错误码:" + result);
  31. }
  32. }
  1. private static BaseNews getkfnews(String openid) {
  2. articles art1=new articles();
  3. art1.setDescription("1");
  4. art1.setPicurl("http://www.baidu.com");
  5. art1.setTitle("测试1");
  6. art1.setUrl("http://www.baidu.com");
  7. articles art2=new articles();
  8. art2.setDescription("1");
  9. art2.setPicurl("http://www.baidu.com");
  10. art2.setTitle("测试1");
  11. art2.setUrl("http://www.baidu.com");
  12. List<articles> list = new ArrayList<articles>();
  13. Kfnews news=new Kfnews();
  14. list.add(art1);
  15. list.add(art2);
  16. news.setArticles(list);
  17. BaseNews kfbean=new BaseNews();
  18. kfbean.setMsgtype("news");
  19. kfbean.setTouser(openid);
  20. kfbean.setNews(news);
  21. String jsonkfbean = JSONObject.fromObject(kfbean).toString();
  22. System.out.println(jsonkfbean);
  23. return kfbean;
  24. }
  25. private static BaseText getkftext(String openid) {
  26. text text=new text();
  27. text.setContent("文本内容");
  28. BaseText textbean=new BaseText();
  29. textbean.setMsgtype("text");
  30. textbean.setTouser(openid);
  31. textbean.setText(text);
  32. String jsonkfbean = JSONObject.fromObject(textbean).toString();
  33. System.out.println(jsonkfbean);
  34. return textbean;
  35. }
  36. }
  37. // 上面的有用到一个调用接口的方法如下:
  38. public static String kf_news_url= "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN";
  39. public static int Runkf(Basebean getkfnews, String token) {
  40. int result = 0;
  41. // 拼装创建的url
  42. String url = kf_news_url.replace("ACCESS_TOKEN", token);
  43. // 将对象转换成json字符
  44. String jsonnews = JSONObject.fromObject(getkfnews).toString();
  45. //System.out.println(jsonMenu);
  46. // 调用接口创建
  47. JSONObject jsonObject = httpRequest(url, "POST", jsonnews);
  48. if (null != jsonObject) {
  49. if (0 != jsonObject.getInt("errcode")) {
  50. result = jsonObject.getInt("errcode");
  51. log.error("调用客服接口失败 errcode:{} errmsg:{}");
  52. }
  53. }
  54. return result;
  55. }

到这里就完成了。可能会比较多。其他的文本的 音乐的 也都是这样的

希望能帮助大家学习参考此部分内容,谢谢大家对本站的支持!

人气教程排行