您的位置:首页 > 移动开发 > 微信开发

Java微信公众号开发

2015-05-23 08:45 309 查看
  微信公众平台是腾讯为了让用户申请和管理微信公众账号而推出的一个web平台。微信公众账号的种类可以分为3种,并且一旦选定不可更改。按照功能的限制从小到大依次为:订阅号、服务号、企业号。个人只能注册订阅号。注册地址:https://mp.weixin.qq.com/

开发环境的准备

微信公众号

外网映射工具(开发调试)

  与微信的对接的URL应该满足以下的条件:

在公网上能够访问

只支持80端口

  映射工具有很多,例如花生壳,ngrok可以将内网映射到公网上面,这样就可以使用公网访问本机的网络服务。下载链接: http://pan.baidu.com/s/1i3u26St 密码: v4e8(里面有简明的教程)。

微信公众号的数据交互原理

package org.gpf.po;
/**
* 按照微信的接入文档编写的微信文本消息实体
*/
public class TextMeaasge {

private String ToUserName;
private String FromUserName;
private long CreateTime;
private String MsgType;
private String Content;
private String MsgId;

public TextMeaasge() {

}

public String getToUserName() {
return ToUserName;
}
public void setToUserName(String toUserName) {
ToUserName = toUserName;
}
public String getFromUserName() {
return FromUserName;
}
public void setFromUserName(String fromUserName) {
FromUserName = fromUserName;
}
public long getCreateTime() {
return CreateTime;
}
public void setCreateTime(long createTime) {
CreateTime = createTime;
}
public String getMsgType() {
return MsgType;
}
public void setMsgType(String msgType) {
MsgType = msgType;
}
public String getContent() {
return Content;
}
public void setContent(String content) {
Content = content;
}
public String getMsgId() {
return MsgId;
}
public void setMsgId(String msgId) {
MsgId = msgId;
}
}


TextMeaasge.java
  实现消息转换的工具类

package org.gpf.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.gpf.po.TextMeaasge;

import com.thoughtworks.xstream.XStream;

/**
* 实现消息的格式转换(Map类型和XML的互转)
*/
public class MessageUtil {

/**
* 将XML转换成Map集合
*/
public static Map<String, String>xmlToMap(HttpServletRequest request) throws IOException, DocumentException{

Map<String, String> map = new HashMap<String, String>();
SAXReader reader = new SAXReader();            // 使用dom4j解析xml
InputStream ins = request.getInputStream(); // 从request中获取输入流
Document doc = reader.read(ins);

Element root = doc.getRootElement();         // 获取根元素
List<Element> list = root.elements();        // 获取所有节点

for (Element e : list) {
map.put(e.getName(), e.getText());
System.out.println(e.getName() + "--->" + e.getText());
}
ins.close();
return map;
}

/**
* 将文本消息对象转换成XML
*/
public static String textMessageToXML(TextMeaasge textMessage){

XStream xstream = new XStream();              // 使用XStream将实体类的实例转换成xml格式
xstream.alias("xml", textMessage.getClass()); // 将xml的默认根节点替换成“xml”
return xstream.toXML(textMessage);

}

}


  Xtream下载地址:http://xstream.codehaus.org/download.html。dom4j下载地址:http://git.oschina.net/gaopengfei/Java_XML/raw/master/lib/dom4j-1.6.1.jar

  天气预报项目的github地址:https://github.com/gao-pengfei/WeChat.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: