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


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 相关文章推荐
JS自动缩小超出大小的图片
Oct 12 Javascript
JS编程小常识很有用
Nov 26 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
js实现支持手机滑动切换的轮播图片效果实例
Apr 29 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
vue移动端轻量级的轮播组件实现代码
Jul 12 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
Sep 27 Javascript
小程序实现留言板
Nov 02 Javascript
js canvas实现画图、滤镜效果
Nov 27 Javascript
JS使用对象的defineProperty进行变量监控操作示例
Feb 02 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 Javascript
Vue实现购物小球抛物线的方法实例
Nov 22 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 sybase_fetch_array使用方法
2014/04/15 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
接收键盘指令的脚本
2006/06/26 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
jQuery学习笔记之总体架构
2014/06/03 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Python实现读取并保存文件的类
2017/05/11 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
超市业务员岗位职责
2013/12/05 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
西双版纳导游词
2015/02/03 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书