MPSDK4J 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
MPSDK4J 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
MPSDK4J 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
MPSDK4J 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
MPSDK4J 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
提 交 者 凡梦星尘
适用人群 未知
收录时间 2015-05-21

软件简介

MPSDK4J 是 JAVA 微信公平台开发 SDK,没有复杂的功能,一切源于微信 API。

1.介绍

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. 结构设计

 

3. 交互时序图

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

BUG提交:https://git.oschina.net/lisenhui/mpsdk4j/issues

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (5)

加载中
这些说白了不就是各种请求
2018/05/07 15:56
回复
举报
打分: 还行
有待提高
2017/08/25 14:46
回复
举报
打分: 力荐
如何支持多公众账号啊?
2017/05/24 17:51
回复
举报
学习
2017/05/18 22:34
回复
举报
必须要有实例的应用场景才能完善 #MPSDK4J#
2016/01/23 20:38
回复
举报
更多评论
发表了资讯
2015/10/16 00:00

MPSDK4J v2 发布,Java的微信公众平台开发工具包

重构确实是个痛苦的选择,但为了后续更好的发展,毅然决定长痛不如短痛。mpsdk4j 最初设计的场景比较单一,主要考虑的是独立布署的微信公众平台服务开发,随着使用者的增加与场景的变化,v1 版本的缺陷便逐渐暴露出来,加上今年微信公众平台的API更新之多。由此促使了mpsdk4j v2版本的诞生,不忘初心方得始终,v2版本依旧...

9
90
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2019/02/15 10:32

Java微信公众号开发之开源框架推荐

1.微信公众平台开发者文档 http://mp.weixin.qq.com/wiki/home/index.html 2.微信公众平台 https://mp.weixin.qq.com/ 3.第三方api weixin4j https://github.com/foxinmy/weixin4j http://www.oschina.net/p/w......

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2016/01/11 17:55

微信公众号开发框架咨询

想做一个个人微信公众号,主要用JAVA做,谁能介绍一下有没有相关的框架可以借鉴一下,或有相关的资料可以借鉴一下。

5
0
发表了问答
2016/01/12 18:03

关于v2的一些问题请教

首先,我没用过V1版。只是看到OC推荐了解到V2版的存在,然后试用之。 一,ConfigReader类过于简单,仅提供的一个相对文件路径加载方法,在play框架下加载不了文件。一般来说InputStream\File之类还是必须要有的。 二,mp.properties的配置说明也没有,要看代码才知道mpId为何物。 三,提供的示例,只粗略的上了几个代码,...

2
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
5 评论
277 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部