MPSDK4J

目录

1.引言

双11是一个令不少人狂欢的日子,今天你买了么?或许在那XXX亿的曲线中能找到你的影子哟,呵~,不过这与俺无关了,只是借用这个双11来纪念一下而已。从事微信公众平台开发也有一段时间了,算是积累了不少经验吧,趁这些天空闲的时间,把这些经验重构一遍拿出来分享一下。特此声明本人并非技术大牛(纯粹的技术渣),只是用最简单的流程与编码实现微信公众平台交互SDK,有什么不满意的话,可以尽情的吐槽。目前已经实现微信API所有的功能且同步至官方最新发布(如最新的AES消息加密),后续还会不断的扩展(会做一个多微信号管理平台),欢迎关注加入,谢谢。

2.介绍

MPSDK4J,非常直观的阐述了此项目的意义所在。没错,它就是JAVA语言环境下的微信公众平台开发SDK。其中MP代表的是微信公众平台的域名前缀,SDK表示开发工具包,4同音英文“for”,J代表了JAVA。虽然现网络上已经有不少JAVA版本的SDK现身,但是***[MPSDK4J]*** 的出现也并非只是造轮子的重复工作。它遵循单一设计模式规则,所有的设计与功能都是源于微信公众平台API,一切都是为了追求简单与速度。

a.设计简单:整体设计非常的简单,仅有7个包39个类对象(其中VO对象占据一半之多,详见结构设计图),核心功能部分就4类(WxBase,WxApi,WxOpenApi,WxHandler);

b.解析速度:基本SAX驱动式XML处理,结合JDK7的新特性,能够快速的解析收到用户发送的微信消息,放弃JAVA反射功能直接编码生成VO对象更加快速;

c.敏捷开发:微信交互信息全都统一封装VO对象,所有VO的属性都是微信公众平台API原生状态。开发者无须再关心它来源是XML还JSON格式,其中消息的收发只需掌握2个VO(ReceiveMsg,OutPutMsg)即可;

d.支持力度:API功能分为三个部分(后续会不断更新升级),微信基本消息的交互,高级接口(Token,自定义菜单,模板消息,群发消息等等)及开放平台功能接口的调用。

2.1结构设计

2.2交互时序

3.项目

3.1最新源码

3.2Maven库引用

另外你也可以通过OSChina的Maven库获取依赖

1.加入OSC仓库,也可参考官方说明OSChina Maven Help

nexus

http://maven.oschina.net/content/groups/public/

true

false

nexus-third

http://maven.oschina.net/content/repositories/thirdparty/

true

true

2.添加依赖坐标

org.elkan1788.osc

mpsdk4j

1.a.19

或者自己编译jar包。

mvn clean package

4.示例代码

MPSDK4J在Web环境中暂时提供了以下三种支持,欢迎提交其它环境扩展。在实际的使用过程中只需要继承相应环境的Wx***Support父类,重写init初始化方法修改其中的公众号信息及微信消息处理器,添加环境的入口(Servlet环境无需此步骤),调用wxInteract方法,最后发布上线即可。

4.1.HttpServlet环境:

@WebServlet(name = "weixinServlet", urlPatterns = "/weixin/mp/core.ser")

public class WeiXinServlet extends WxServletSupport {

@Override

public void init() throws ServletException {

super.init();

MPAct mpAct = new MPAct();

// 修改为实际的公众号信息,可以在开发者栏目中查看

mpAct.setAppId("wx****");

mpAct.setAppSecert("***");

mpAct.setToken("***");

mpAct.setAESKey("******");

this.setMpAct(mpAct);

// 可实现自己的WxHandler

this.setWxHandler(new WxDefaultHandler());

}

}

4.2.SpringMVC环境:

@Controller

@RequestMapping("/weixin/mp")

public class WeiXinController extends WxSpringSupport {

@Override

protected void init() {

MPAct mpAct = new MPAct();

// 修改为实际的公众号信息,可以在开发者栏目中查看

mpAct.setAppId("wx****");

mpAct.setAppSecert("***");

mpAct.setToken("***");

mpAct.setAESKey("******");

this.setMpAct(mpAct);

// 可实现自己的WxHandler

this.setWxHandler(new WxDefaultHandler());

}

@RequestMapping(value = "/core",produces = {"text/plain;charset=UTF-8"})

@ResponseBody

public String wxCore(HttpServletRequest req) {

String reply = "";

try {

reply = wxInteract(req);

} catch (IOException e) {

log.error(e.getLocalizedMessage(), e);

}

return reply;

}

}

4.3.Struts2环境:

public class WeiXinAction extends WxStruts2Support {

@Override

protected void init() {

super.init();

MPAct mpAct = new MPAct();

// 修改为实际的公众号信息,可以在开发者栏目中查看

mpAct.setAppId("wx****");

mpAct.setAppSecert("***");

mpAct.setToken("***");

mpAct.setAESKey("******");

this.setMpAct(mpAct);

// 可实现自己的WxHandler

this.setWxHandler(new WxDefaultHandler());

}

public void wxCore() throws IOException {

wxInteract();

}

}

5.Issue

6.联系

特别希望看到该项目对您哪怕一点点的帮助。你有任何的想法和建议,除以上Issue提交外,也随时欢迎与我沟通,联系方式:

QQ: 2292706174

微信:

7.其它

目前正在尝试微信开放平台探究,已初步实现授权管理功能,后续会不断完善成一个管理平台,期待你的加入。

puking java_GitHub - pukingli/mpsdk4j: JAVA微信公平台开发SDK,没有复杂的功能,一切源于微信API,愿你会喜欢使用。...相关推荐

  1. MPSDK4J 是JAVA微信公平台开发SDK,没有复杂的功能,一切源于微信API,愿你会喜欢使用。-- 题记

    MPSDK4J 是JAVA微信公平台开发SDK,没有复杂的功能,一切源于微信API,愿你会喜欢使用.-- 题记 1.介绍 MPSDK4J,非常直观的阐述了此项目的意义所在.没错,它就是JAVA语言环境 ...

  2. 微信公平台的开发之初

    微信公平台的开发之初 微信,影响了我们的生活,工作,我在微信上通过关注公众号学习了很多,所以我也希望能自己弄一个微信平台,实践自己的同时,能助于他人.微信公众平台公众号开发我把它也作为我实习的一部分, ...

  3. 微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发

    本文主要讲解如何使用 weinxinFundation 进行二次开发. 步骤如下: 1.创建新的web项目. 在eclipse里新建一个dynamicly web project,比如本文叫weixi ...

  4. 微信二次开发SDK使用教程--手机检测到有人点赞/取消点赞通知服务端

    微信二次开发SDK使用教程--手机检测到有人点赞/取消点赞通知服务端 case CircleLikeNotice : {//手机检测到有人点赞/取消点赞通知 log.debug("socke ...

  5. 聚播群控微信二次开发sdk完整API

    聚播群控微信二次开发sdk完整API功能: 微信加好友功能API 1.导入手机通讯录 2.手机通讯录加好友 3.加指定微信群好友 4.自动通过微信好友请求 5.手机模拟定位 6.附近人加好友 7.各种 ...

  6. 微信公众平台开发之签到积分查询功能

    微信公众平台开发之签到积分查询功能是微信公众账号所需的最基础的功能,别看它简单不起眼,但却是留住会员,使会员长期关注官方微信的法宝.通过每日签到送积分可以使会员每天都来关注官方微信,下面我就来简单介绍 ...

  7. 微信公众平台开发(六) 翻译功能开发

    转载自:http://www.php100.com/html/php/api/2013/0909/6130.html 微信公众平台开发(六) 翻译功能开发 来源:David Camp   时间:201 ...

  8. 视频教程-老司机讲前端之微信小程序开发成语消消乐游戏视频课程-微信开发

    老司机讲前端之微信小程序开发成语消消乐游戏视频课程 中国实战派HTML5培训第一人,微软技术讲师,曾任百合网技术总监,博看文思HTML5总监.陶国荣长期致力于HTML5.JavaScript.CSS3 ...

  9. 微信云控开发SDK使用教程--手机机端回传检测清粉好友数通知服务端

    微信云控开发SDK使用教程--手机机端回传检测清粉好友数通知服务端 case PostFriendDetectCountNotice : {//手机机端回传检测清粉好友数 log.debug(&quo ...

最新文章

  1. Pandas:透视表(pivotTab)和交叉表(crossTab)
  2. python setup用法_python的构建工具setup.py的方法使用示例
  3. python怎么导入文本-如何导入其他Python文件?
  4. 美国通过热像无人机找到失踪老人
  5. vsFTP服务器的配置
  6. Maven 打包的3中场景
  7. centos上使用高版本gcc、g++
  8. BIO,NIO,AIO总结(一)
  9. 2017.3.30 寿司晚宴 失败总结
  10. 解决insmod: error inserting 'hello.ko': -1 Invalid module format
  11. 市场大幅逆转速度达史上最快 宏观交易领域也被机器“占领”
  12. Windows XP 禁用屏幕保护功能
  13. H5 pc 手机端 web 模板 easyUI uimaker 最新版
  14. java 反编译工具=_java反编译工具(XJad)v2.2
  15. jtag接口_USB接口—Xilinx—JTAG烧写器(电路图、PCB片段、烧写器配置固件)设计方案...
  16. 通用横轴墨卡托投影(Universal Transvers Mercator)
  17. opengles之3D模型加载(obj模型文件)
  18. iOS-图文混排方案-2种方案
  19. Linux0号进程,1号进程,2号进程
  20. Java微信公众平台开发之获取地理位置

热门文章

  1. 赤手空拳如何成就百万富翁?——网络营销之七(第四招:百度文库+)
  2. 华为应用市场推出独家年终游戏节活动,包括12款最热门手游
  3. linux read函数详解及应用
  4. 赠书活动环节抽签C++程序
  5. 吉林大学计算机学院男女,最狠盘点:39所985大学男女比例排行,23名开外请自备女票入学...
  6. yan-master项目集成Activiti 6.0.0
  7. 大数加法(ascll转换),利息计算(数组,sizeof与循环运用)
  8. java 解析mp4_Java - 通过优酷网视频播放网址解析出Mp4格式的单个文件
  9. button按钮置灰
  10. MAC jenkins生成allure报告失败提示:错误:找不到无法加载主类 io.qameta.allure.CommandLine