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


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 相关文章推荐
取选中的radio的值
Jan 11 Javascript
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
JavaScript中window.open用法实例详解
Apr 15 Javascript
JavaScript实现算术平方根算法-代码超简单
Sep 11 Javascript
JS日期格式化之javascript Date format
Oct 01 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
Nov 25 Javascript
深入理解JavaScript中的并行处理
Sep 22 Javascript
ES6中Iterator与for..of..遍历用法分析
Mar 31 Javascript
JS实现简单表格排序操作示例
Oct 07 Javascript
webuploader实现上传图片到服务器功能
Aug 16 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
Jan 14 Javascript
vue中使用echarts的示例
Jan 03 Vue.js
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通过COM类调用组件的实现代码
2012/01/11 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
树结构之JavaScript
2017/01/24 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
Django 外键的使用方法详解
2019/07/19 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
python正则表达式实例代码
2020/03/03 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
提高python代码运行效率的一些建议
2020/09/29 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
.NET remoting的两种通道是什么
2016/05/31 面试题
初中数学教学反思
2014/01/16 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
文案策划岗位职责
2015/02/11 职场文书