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


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 相关文章推荐
JavaScript中的document.referrer在各种浏览器测试结果
Jul 18 Javascript
浏览器复制插件zeroclipboard使用指南
Mar 26 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
Vue.js每天必学之表单控件绑定
Sep 05 Javascript
angular ngClick阻止冒泡使用默认行为的方法
Nov 03 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
解析vue路由异步组件和懒加载案例
Jun 08 Javascript
利用原生的JavaScript实现简单拼图游戏
Nov 18 Javascript
layui动态绑定事件的方法
Sep 20 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
Feb 06 Javascript
vuex管理状态仓库使用详解
Jul 29 Javascript
vue elementUI表格控制对应列
Apr 13 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中DOMElement操作xml文档实例演示
2013/03/26 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
PHP如何实现跨域
2016/05/30 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
中医临床专业自我鉴定范文
2014/01/15 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
开展创先争优活动总结
2014/08/28 职场文书
导航工程专业自荐信
2014/09/02 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
个人合作协议范本
2015/08/06 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript
Python关于OS文件目录处理的实例分享
2021/05/23 Python
python内置进制转换函数的操作
2021/06/02 Python
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
Java 在生活中的 10 大应用
2021/11/02 Java/Android
从原生JavaScript到React深入理解
2022/07/23 Javascript