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


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脚本实现Web页面信息交互
Dec 21 Javascript
将list转换为json失败的原因
Dec 17 Javascript
Bootstrap进度条学习使用
Feb 09 Javascript
JavaScript下拉菜单功能实例代码
Mar 01 Javascript
JavaScript装饰器函数(Decorator)实例详解
Mar 30 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
Dec 25 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
Apr 04 Javascript
vue swipe自定义组件实现轮播效果
Jul 03 Javascript
vue循环数组改变点击文字的颜色
Oct 14 Javascript
JavaScript中遍历的十种方法总结
Dec 15 Javascript
5个实用的JavaScript新特性
Jun 16 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
一个odbc连mssql分页的类
2006/10/09 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
用于table内容排序
2006/07/21 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
python实现的发邮件功能示例
2019/09/11 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
keras的三种模型实现与区别说明
2020/07/03 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
产品促销活动策划书
2014/01/15 职场文书
七年级英语教学反思
2014/01/15 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
教师考核鉴定意见
2015/06/05 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
Python中的pprint模块
2021/11/27 Python