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


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 相关文章推荐
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
May 28 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
Jan 15 Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 Javascript
jquery解析XML及获取XML节点名称的实现代码
May 18 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
Jun 29 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
Layui实现主窗口和Iframe层参数传递
Nov 14 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
May 11 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
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简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
javascript写的日历类(基于pj)
2010/12/28 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
使用js判断TextBox控件值改变然后出发事件
2014/03/07 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
跟老齐学Python之总结参数的传递
2014/10/10 Python
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
Python 实现try重新执行
2019/12/21 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
没编程基础可以学python吗
2020/06/17 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
函授毕业自我鉴定
2013/12/19 职场文书
秸秆管理实施方案
2014/03/15 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
公司保洁员管理制度
2015/08/04 职场文书
课改心得体会范文
2016/01/25 职场文书
Apache POI的基本使用详解
2021/11/07 Servers