阿里百川梦想创业大赛,500万创投寻找最赞的APP
fastweixin 发布 1.2.8 版本,版本更新内容:
新增用户网页授权API:OauthAPI
调用API返回错误时,除了可以得到错误码,还可以得到官方给出的中文描述而不是冷冰冰的英文描述;
优化网络请求结构,解决某些情况返回数据中文乱码的问题;
重构客服接口,加入新增的客服API,只是貌似文档还有问题,现只是按照官方文档规范实现了,并不建议使用;
简单封装了所有与微信服务器交互的消息:文本消息、图片消息、图文消息等等
提供了基于springmvc以及基于servlet框架的控制器,集成了微信服务器绑定、监听所有类型消息的方法
使用时继承,重写即可,十分方便
v1.2.0开始支持高级接口的API,https请求基于org.apache.httpcomponents 4.3.6,json解析基于fastjson 1.2.3
框架中提供MenuAPI、CustomAPI、QrcodeAPI、UserAPI、 MediaAPI、 OauthAPI用于实现所有高级接口功能,使用极其简单
v1.2.6开始支持微信安全模式的消息收发
内部实现token过期自动刷新,不用再关注token细节
注意:对于同一个公众号而言,ApiConfig类只需保持单例即可
@RestController @RequestMapping("/weixin") public class WeixinController extends WeixinControllerSupport { private static final Logger log = LoggerFactory.getLogger(WeixinController.class); private static final String TOKEN = "myToken"; //设置TOKEN,用于绑定微信服务器 @Override protected String getToken() { return TOKEN; } //使用安全模式时设置:APPID @Override protected String getAppId() { return null; } //使用安全模式时设置:密钥 @Override protected String getAESKey() { return null; } //重写父类方法,处理对应的微信消息 @Override protected BaseMsg handleTextMsg(TextReqMsg msg) { String content = msg.getContent(); log.debug("用户发送到服务器的内容:{}", content); return new TextMsg("服务器回复用户消息!"); } /*1.1版本新增,重写父类方法,加入自定义微信消息处理器 *不是必须的,上面的方法是统一处理所有的文本消息,如果业务觉复杂,上面的会显得比较乱 *这个机制就是为了应对这种情况,每个MessageHandle就是一个业务,只处理指定的那部分消息 */ @Override protected List<MessageHandle> initMessageHandles() { List<MessageHandle> handles = new ArrayList<MessageHandle>(); handles.add(new MyMessageHandle()); return handles; } //1.1版本新增,重写父类方法,加入自定义微信事件处理器,同上 @Override protected List<EventHandle> initEventHandles() { List<EventHandle> handles = new ArrayList<EventHandle>(); handles.add(new MyEventHandle()); return handles; } }
public class WeixinServlet extends WeixinServletSupport { private static final Logger log = LoggerFactory.getLogger(WeixinController.class); private static final String TOKEN = "myToken"; //设置TOKEN,用于绑定微信服务器 @Override protected String getToken() { return TOKEN; } //使用安全模式时设置:APPID @Override protected String getAppId() { return null; } //使用安全模式时设置:密钥 @Override protected String getAESKey() { return null; } //重写父类方法,处理对应的微信消息 @Override protected BaseMsg handleTextMsg(TextReqMsg msg) { String content = msg.getContent(); log.debug("用户发送到服务器的内容:{}", content); return new TextMsg("服务器回复用户消息!"); } //1.1版本新增,重写父类方法,加入自定义微信消息处理器 @Override protected List<MessageHandle> initMessageHandles() { List<MessageHandle> handles = new ArrayList<MessageHandle>(); handles.add(new MyMessageHandle()); return handles; } //1.1版本新增,重写父类方法,加入自定义微信事件处理器 @Override protected List<EventHandle> initEventHandles() { List<EventHandle> handles = new ArrayList<EventHandle>(); handles.add(new MyEventHandle()); return handles; } }