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


Posted in Javascript onSeptember 28, 2016

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

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

首先先封装下 JSon 的类:

package com.lwz.wx.bean.kf;

// 这个是最外层的 也可以说是基类吧、
public class Basebean {
private String touser;
private String msgtype;

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;
}
  
}
//这个类是继承基类、

package com.lwz.wx.bean.kf;
public class BaseNews extends Basebean{
  private Kfnews news;
public Kfnews getNews() {
return news;
}
public void setNews(Kfnews news) {
this.news = news;
}

}
//
package com.lwz.wx.bean.kf;
import java.util.List;
public class Kfnews {
private List<articles> articles;
public List<articles> getArticles() {
return articles;
}
public void setArticles(List<articles> articles) {
this.articles = articles;
}
}
//
package com.lwz.wx.bean.kf;


public class articles {
private String title;
  private String description;
  private String url;
  private String picurl;
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;
}

}

以上的结构就对应

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

package com.lwz.wx.main;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import net.sf.json.JSONObject;
import com.lwz.wx.bean.AccessToken;
import com.lwz.wx.bean.Articles;
import com.lwz.wx.bean.kf.BaseNews;
import com.lwz.wx.bean.kf.BaseText;
import com.lwz.wx.bean.kf.Basebean;
import com.lwz.wx.bean.kf.Kfnews;
import com.lwz.wx.bean.kf.articles;
import com.lwz.wx.bean.kf.text;
import com.lwz.wx.util.WeixinUtil;




public class KfManager {
private final static Logger log = Logger.getLogger(Basebean.class);
   public static void Gotokf(String openid){
     String appId =""; //填上自己的APPID 下同  需要认证过的哦
String appSecret="";
// 调用接口获取access_token
AccessToken at = WeixinUtil.getAccessToken(appId, appSecret);
if (null != at) {
// 调用接口发送消息
int result = WeixinUtil.Runkf( getkfnews(openid), at.getToken()); // 这个方法会在下面 展示
//int result = WeixinUtil.createMenu(getMenu(),"1832148947");
// 判断菜单创建结果
if (0 == result)
log.info("调用客服信息发送成功!");
else
log.info("客服调用失败,错误码:" + result);
}
  }
private static BaseNews getkfnews(String openid) {
articles art1=new articles();
art1.setDescription("1");
art1.setPicurl("http://www.baidu.com");
art1.setTitle("测试1");
art1.setUrl("http://www.baidu.com");

articles art2=new articles();
art2.setDescription("1");
art2.setPicurl("http://www.baidu.com");
art2.setTitle("测试1");
art2.setUrl("http://www.baidu.com");
List<articles> list = new ArrayList<articles>();
Kfnews news=new Kfnews();
list.add(art1);
list.add(art2);
news.setArticles(list);

BaseNews kfbean=new BaseNews();
kfbean.setMsgtype("news");
kfbean.setTouser(openid);
kfbean.setNews(news);
String jsonkfbean = JSONObject.fromObject(kfbean).toString();
System.out.println(jsonkfbean);
return kfbean;

}

private static BaseText getkftext(String openid) {
  text text=new text();
text.setContent("文本内容");
BaseText textbean=new BaseText();
textbean.setMsgtype("text");
textbean.setTouser(openid);
textbean.setText(text);
String jsonkfbean = JSONObject.fromObject(textbean).toString();
System.out.println(jsonkfbean);
return textbean;

}
} 
// 上面的有用到一个调用接口的方法如下:

public static String kf_news_url= "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN";

public static int Runkf(Basebean getkfnews, String token) {

int result = 0;





// 拼装创建的url

String url = kf_news_url.replace("ACCESS_TOKEN", token);

// 将对象转换成json字符

String jsonnews = JSONObject.fromObject(getkfnews).toString();

//System.out.println(jsonMenu);

// 调用接口创建

JSONObject jsonObject = httpRequest(url, "POST", jsonnews);

if (null != jsonObject) {

if (0 != jsonObject.getInt("errcode")) {

result = jsonObject.getInt("errcode");

log.error("调用客服接口失败 errcode:{} errmsg:{}");

}

}





return result;

}

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

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

Javascript 相关文章推荐
由prototype_1.3.1进入javascript殿堂-类的初探
Nov 06 Javascript
初识JQuery 实例一(first)
Mar 16 Javascript
js日历功能对象
Jan 12 Javascript
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
jQuery Mobile 导航栏代码
Nov 01 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
Jun 08 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
小程序中canvas的drawImage方法参数使用详解
Jul 04 Javascript
JavaScript实现身份证验证代码实例
Aug 26 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
Dec 06 Javascript
js实现购物车商品数量加减
Sep 21 Javascript
jQuery解析XML 详解及方法总结
Sep 28 #Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 #Javascript
微信小程序 实例应用(记账)详解
Sep 28 #Javascript
JavaScript 闭包详细介绍
Sep 28 #Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
Sep 28 #Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 #Javascript
BootstrapValidator不触发校验的实现代码
Sep 28 #Javascript
You might like
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
javascript整除实现代码
2010/11/23 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
原生JavaScrpit中异步请求Ajax实现方法
2017/11/03 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
介绍Python中的fabs()方法的使用
2015/05/14 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
教师评优事迹材料
2014/01/10 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
《观察物体》教学反思
2016/02/17 职场文书
小学语文教学反思范文
2016/03/03 职场文书
PHP基本语法
2021/03/31 PHP
使用pytorch实现线性回归
2021/04/11 Python
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技