java微信机器人_Java版微信机器人代码
Java版微信机器人代码
(2014-07-31 09:47:58)
标签:
软件测试
java
上海泽众软件
package com.eiyoung.wechat.web.controller;
import java.io.IOException;import
java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.eiyoung.wechat.web.utils.Message;
import com.eiyoung.wechat.web.utils.ReplyMessage;
import org.apache.commons.io.IOUtils;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
public class WeChat extends HttpServlet {
private static final long serialVersionUID = 1L;
public WeChat() {
super();
* 验证
* @param request
* @param response
* @throws ServletException
* @throws IOException
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
String echo = request.getParameter("echostr");
System.out.print(echo);
echo = new String(echo.getBytes("ISO-8859-1"),"UTF-8");
pw.println(echo);
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
String wxMsgXml =
IOUtils.toString(request.getInputStream(),"utf-8");
Message textMsg = null;
try {
textMsg = getMessage(wxMsgXml);
} catch (Exception e) {
e.printStackTrace();
StringBuffer replyMsg = new StringBuffer();
if(textMsg != null){
//增加你所需要的处理逻辑,这里只是简单重复消息
replyMsg.append("您给我的消息是:");
replyMsg.append(textMsg.getContent());
else{
replyMsg.append(":)不是文本的消息,我暂时看不懂");
String returnXml = getReplyMessage(replyMsg.toString(),
textMsg.getFromUserName(),textMsg.getToUserName());
System.out.print(textMsg.toString());
System.out.print(returnXml.toString());
pw.println(returnXml);
private Message getMessage(String xml){
XStream xstream = new XStream(new DomDriver());
xstream.alias("xml", Message.class);
xstream.aliasField("ToUserName", Message.class,
"toUserName");
xstream.aliasField("FromUserName", Message.class,
"fromUserName");
xstream.aliasField("CreateTime", Message.class,
"createTime");
xstream.aliasField("MsgType", Message.class, "messageType");
xstream.aliasField("Content", Message.class, "content");
xstream.aliasField("MsgId", Message.class, "msgId");
Message Message = (Message)xstream.fromXML(xml);
return Message;
private String getReplyMessage(String replyMsg,String
toUserName,String fromUserName){
ReplyMessage we = new ReplyMessage();
we.setMessageType("text");
we.setFuncFlag("0");
we.setCreateTime(new Long(new Date().getTime()).toString());
we.setContent(replyMsg);
we.setToUserName(toUserName);
we.setFromUserName(fromUserName);
XStream xstream = new XStream(new DomDriver());
xstream.alias("xml", ReplyMessage.class);
xstream.aliasField("ToUserName", ReplyMessage.class,
"toUserName");
xstream.aliasField("FromUserName", ReplyMessage.class,
"fromUserName");
xstream.aliasField("CreateTime", ReplyMessage.class,
"createTime");
xstream.aliasField("MsgType", ReplyMessage.class,
"messageType");
xstream.aliasField("Content", ReplyMessage.class, "content");
xstream.aliasField("FuncFlag", ReplyMessage.class,
"funcFlag");
String xml =xstream.toXML(we);
return xml;
package com.eiyoung.wechat.web.utils;
* Created with IntelliJ IDEA.
* User: sb
* Date: 8/1/13
* Time: 10:37 PM
* To change this template use File | Settings | File
Templates.
public class ReplyMessage {
private String FuncFlag;//消息编号
private String fromUserName;//发送人
private String toUserName;//接收人
private String content;//内容
private String messageType;//消息类型
private String createTime;//创建日期
public String getContent() {
return content;
public void setContent(String content) {
this.content = content;
public String getMessageType() {
return messageType;
public void setMessageType(String messageType) {
this.messageType = messageType;
public String getFromUserName() {
return fromUserName;
public void setFromUserName(String fromUserName) {
this.fromUserName = fromUserName;
public String getToUserName() {
return toUserName;
public void setToUserName(String toUserName) {
this.toUserName = toUserName;
public String getCreateTime() {
return createTime;
public void setCreateTime(String createTime) {
this.createTime = createTime;
public String getFuncFlag() {
return FuncFlag;
public void setFuncFlag(String funcFlag) {
FuncFlag = funcFlag;
public String toString(){
return
"createTime:"+getCreateTime()+"\ntoUserName:"+getToUserName()+"\n
FromUserName:"+getFromUserName()+"\nmessageType:"+getMessageType()+"\ncontent:"+getContent();http://www.huiyi8.com/tishiyin/
提示音
package com.eiyoung.wechat.web.utils;
import java.util.Date;
* Created with IntelliJ IDEA.
* User: sb
* Date: 8/1/13
* Time: 10:37 PM
* To change this template use File | Settings | File
Templates.
public class Message {
private String msgId;//消息编号
private String fromUserName;//发送人
private String toUserName;//接收人
private String content;//内容
private String messageType;//消息类型
private String createTime;//创建日期
public String getContent() {
return content;
public void setContent(String content) {
this.content = content;
public String getMessageType() {
return messageType;
public void setMessageType(String messageType) {
this.messageType = messageType;
public String getFromUserName() {
return fromUserName;
public void setFromUserName(String fromUserName) {
this.fromUserName = fromUserName;
public String getToUserName() {
return toUserName;
public void setToUserName(String toUserName) {
this.toUserName = toUserName;
public String getCreateTime() {
return createTime;
public void setCreateTime(String createTime) {
this.createTime = createTime;
public String getMsgId() {
return msgId;
public void setMsgId(String msgId) {
this.msgId = msgId;
public String toString(){
return
"msgId:"+getMsgId()+"\ncreateTime:"+getCreateTime()+"\ntoUserName:"+getToUserName()+"\n
FromUserName:"+getFromUserName()+"\nmessageType:"+getMessageType()+"\ncontent:"+getContent();
maven
junit
junit
3.8.1
test
javax.servlet
servlet-api
3.0-alpha-1
joda-time
joda-time
2.2
org.apache.commons
commons-io
1.3.2
com.thoughtworks.xstream
xstream
1.4.3
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。
java微信机器人_Java版微信机器人代码相关推荐
- 微信群控系统制作系列一——java模拟登录网页版微信
PS:很多人咨询我怎么做手机群控系统,因此我开了个制作群控系统的系列,准备分五期讲解群控系统的制作.前两篇是基础内容. 今天做个简单的java模拟登录网页版微信. 既然要做模拟登录,那么我们一定要了解 ...
- Python倒计时自动发微信(电脑版微信)
一.前言: Python倒计时自动发微信(电脑版微信登录状态) 二.主要思路及步骤: 1.先启动微信 2.定位到搜索框 3.搜索微信 4.进入聊天窗口 5.粘贴文本内容 6.发送 7.关闭微信窗口 ...
- java 微信退款接口_java版微信和支付宝退款接口
本文实例为大家分享了java微信退款接口和支付宝退款接口的具体代码,供大家参考,具体内容如下 1.微信退款接口 相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可: /** ...
- 微信java版_JAVA版微信支付V3-完全版
本人做的是微信V3版本的微信支付,也是目前最新的微信支付接口.官方文档下载地址 微信支付成功后 你的邮件会有以下信息: 1. 信息包括:商户ID(mch_id).申请编号.登录帐号.登录密码.商户A ...
- java 企业付款_java实现微信企业付款到个人功能
微信官方提供了微信企业账户付款到微信个人零钱接口,提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款.该接口并不是直接所有的商户都拥有,企业要开启必须满足以下 ...
- java 微信请求_Java web微信请求拦截器(微信公众号开发)
Java web微信请求拦截器(微信公众号开发),获取微信用户信息. package com.mvc.interceptor; import com.alibaba.fastjson.JSONObje ...
- 微信协议网页版微信协议解析
最近在做个微信机器人,所以研究了网页版的微信协议及相关接口,在这里简单总结一下. 从表面上看,对于网页版微信我们的使用流程是这样的: 很简单,只有四步,但如果细化到内里细节的话,上面这简单四步的背后其 ...
- 读取PC版微信数据库(电脑版微信数据库)内容
原始网址 https://www.cnblogs.com/Charltsing/p/WeChatPCdb.html 联系QQ:564955427 1.PC版微信的密钥是32位byte,不同于安卓版 ...
- Android及IOS微信5,Android版微信5.0今日正式发布 与iOS版略不同
原定于今日(9日)上午11时正式发布的Android版微信5.0终于"千呼万唤始出来",约17:30分左右,出现在腾讯旗下的"应用宝"中. 腾讯官方曾表示,8月 ...
最新文章
- UVa 10954 Add All 贪心
- 06.search_shard_api操作
- Docker Nacos Mysql集群
- linux virtualhost不能正常运行,造成网站无法正常运行的4个原因!
- DB2 sql复制error sqlcode2038
- 黑莓发布自动驾驶安全管家软件Jarvis
- 一行shell解决Mac文件乱码问题
- go学习笔记-包处理
- GradientDrawable
- 牛客练习赛26---未完
- html高德地图无法显示,关于高德地图不显示的问题
- 在linux启动docker时,报告XIO: fatal IO error 错误
- 让Android屏幕不响应任何点击
- C语言基础入门48篇_13_关系运算符与关系表达式(等于(==)、不等于(叹=)、大于(>)、小于(<)、小于等于(<=)、大于等于(>=),5==nValue方式避免bug,==不可比较浮点型数据)
- 阿俊带你用Kotlin刷算法(一)
- 信息安全管理(CISP)—— 信息安全管理
- oracle数据库审计要素,启明星辰-数据库审计.doc
- 2022年重庆最新建筑施工焊工(建筑特种作业)模拟考试题库及答案解析
- python 爬取电影天堂电影
- 7-9 集合相似度(25 分)