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


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 相关文章推荐
实现连缀调用的map方法(prototype)
Aug 05 Javascript
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
jQuery UI Autocomplete 体验分享
Feb 14 Javascript
Node.js模块加载详解
Aug 16 Javascript
js判断文本框输入的内容是否为数字
Dec 23 Javascript
聊一聊JavaScript作用域和作用域链
May 03 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
Nov 03 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
JS Input里添加小图标的两种方法
Nov 11 Javascript
element-ui表格列金额显示两位小数的方法
Aug 24 Javascript
在Vue组件中获取全局的点击事件方法
Sep 06 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 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动态页生成静态页的3种常用方法
2014/11/13 PHP
php数组转成json格式的方法
2015/03/09 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
初识Javascript小结
2015/07/16 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
js实现表格筛选功能
2017/01/18 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
Python基于select实现的socket服务器
2016/04/13 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
建筑实习自我鉴定
2013/10/18 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
老干部工作汇报材料
2014/10/28 职场文书
学生违反校规检讨书
2014/10/28 职场文书
世界红十字日活动总结
2015/02/10 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
新学期感想
2015/08/10 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
vue实现移动端div拖动效果
2022/03/03 Vue.js