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版微信机器人代码相关推荐

  1. 微信群控系统制作系列一——java模拟登录网页版微信

    PS:很多人咨询我怎么做手机群控系统,因此我开了个制作群控系统的系列,准备分五期讲解群控系统的制作.前两篇是基础内容. 今天做个简单的java模拟登录网页版微信. 既然要做模拟登录,那么我们一定要了解 ...

  2. Python倒计时自动发微信(电脑版微信)

    一.前言: Python倒计时自动发微信(电脑版微信登录状态) 二.主要思路及步骤: 1.先启动微信 2.定位到搜索框 3.搜索微信 4.进入聊天窗口 5.粘贴文本内容 6.发送   7.关闭微信窗口 ...

  3. java 微信退款接口_java版微信和支付宝退款接口

    本文实例为大家分享了java微信退款接口和支付宝退款接口的具体代码,供大家参考,具体内容如下 1.微信退款接口 相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可: /** ...

  4. 微信java版_JAVA版微信支付V3-完全版

    本人做的是微信V3版本的微信支付,也是目前最新的微信支付接口.官方文档下载地址 微信支付成功后  你的邮件会有以下信息: 1. 信息包括:商户ID(mch_id).申请编号.登录帐号.登录密码.商户A ...

  5. java 企业付款_java实现微信企业付款到个人功能

    微信官方提供了微信企业账户付款到微信个人零钱接口,提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款.该接口并不是直接所有的商户都拥有,企业要开启必须满足以下 ...

  6. java 微信请求_Java web微信请求拦截器(微信公众号开发)

    Java web微信请求拦截器(微信公众号开发),获取微信用户信息. package com.mvc.interceptor; import com.alibaba.fastjson.JSONObje ...

  7. 微信协议网页版微信协议解析

    最近在做个微信机器人,所以研究了网页版的微信协议及相关接口,在这里简单总结一下. 从表面上看,对于网页版微信我们的使用流程是这样的: 很简单,只有四步,但如果细化到内里细节的话,上面这简单四步的背后其 ...

  8. 读取PC版微信数据库(电脑版微信数据库)内容

    原始网址   https://www.cnblogs.com/Charltsing/p/WeChatPCdb.html 联系QQ:564955427 1.PC版微信的密钥是32位byte,不同于安卓版 ...

  9. Android及IOS微信5,Android版微信5.0今日正式发布 与iOS版略不同

    原定于今日(9日)上午11时正式发布的Android版微信5.0终于"千呼万唤始出来",约17:30分左右,出现在腾讯旗下的"应用宝"中. 腾讯官方曾表示,8月 ...

最新文章

  1. UVa 10954 Add All 贪心
  2. 06.search_shard_api操作
  3. Docker Nacos Mysql集群
  4. linux virtualhost不能正常运行,造成网站无法正常运行的4个原因!
  5. DB2 sql复制error sqlcode2038
  6. 黑莓发布自动驾驶安全管家软件Jarvis
  7. 一行shell解决Mac文件乱码问题
  8. go学习笔记-包处理
  9. GradientDrawable
  10. 牛客练习赛26---未完
  11. html高德地图无法显示,关于高德地图不显示的问题
  12. 在linux启动docker时,报告XIO: fatal IO error 错误
  13. 让Android屏幕不响应任何点击
  14. C语言基础入门48篇_13_关系运算符与关系表达式(等于(==)、不等于(叹=)、大于(>)、小于(<)、小于等于(<=)、大于等于(>=),5==nValue方式避免bug,==不可比较浮点型数据)
  15. 阿俊带你用Kotlin刷算法(一)
  16. 信息安全管理(CISP)—— 信息安全管理
  17. oracle数据库审计要素,启明星辰-数据库审计.doc
  18. 2022年重庆最新建筑施工焊工(建筑特种作业)模拟考试题库及答案解析
  19. python 爬取电影天堂电影
  20. 7-9 集合相似度(25 分)

热门文章

  1. 【Kong】网关-rate-limiting限流
  2. IP解析成地址 确定省市
  3. 码农:为什么说英语已经影响了我的命运
  4. 基于AM5728 DSP JTAG连接调试方法
  5. win7上怎么安装linux系统安装教程,怎么装系统双系统安装教程 win7 linux
  6. java的h2是什么_什么是H2数据库
  7. luogu P5320 [BJOI2019]勘破神机
  8. python基础19-36题
  9. Parabola 抛物线-简单公式实现
  10. 阿拉伯数字转化为中文大写