Java Clean Architecture Masterclass

Java Clean Architecture Masterclass28-29 May

Join

WxJava - 微信开发 Java SDK

Github Gitee GitCode

GitHub release Maven Central Build Status 使用IntelliJ IDEA开发维护 License Ask DeepWiki

Featured|HelloGitHub binarywang/WxJava | 趋势转变 Star History

微信 Java 开发工具包,支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。

特别赞助

赞助商招募中,欢迎联系合作。

关注公众号

想获得技术交流群(QQ群/微信群/钉钉群)等信息,请扫码关注 WxJava 公众号:

WxJava 公众号二维码

目录索引

快速开始(3分钟)

  1. 根据业务场景选择模块(见下方“我该选哪个模块?”)
  2. 引入 Maven 依赖并选择对应模块
  3. 参考最小示例完成初始化并调用 API

AI 编程智能体 SKILL 安装

仓库的 skills 目录提供面向 WxJava 用户和贡献者的通用 SKILL,包括模块选择、接入、排障、接口贡献和升级迁移。每个 SKILL 都以 SKILL.md 为入口,可用于支持该约定的 AI 编程智能体。

支持远程安装 SKILL 的智能体,可以直接使用自然语言指令安装所需目录。例如:

安装 https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide 中的技能。

可安装的 SKILL 包括:

不支持远程安装时,可将所需的 skills/wxjava-* 目录复制到智能体的 SKILL 目录或工作区配置目录;不同智能体的目录和启用方式请以其官方文档为准。

以 Codex 为例,可复制到个人 SKILL 目录:

git clone https://github.com/binarywang/WxJava.git
mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
cp -R WxJava/skills/wxjava-* "${CODEX_HOME:-$HOME/.codex}/skills/"

如果已在本仓库根目录,可直接执行:

mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
cp -R skills/wxjava-* "${CODEX_HOME:-$HOME/.codex}/skills/"

重启或新建智能体会话后,即可按需使用。例如:使用 wxjava-integration-guide 为我的 Spring Boot 项目接入微信支付。

我该选哪个模块?

业务场景 模块 artifactId
微信公众号开发 MP weixin-java-mp
微信小程序开发 MiniApp weixin-java-miniapp
微信支付 Pay weixin-java-pay
企业微信 CP weixin-java-cp
微信开放平台(第三方平台) Open weixin-java-open
视频号 / 微信小店 Channel weixin-java-channel

移动端(iOS/Android)微信登录、分享等能力仍需集成微信官方客户端 SDK;本项目为服务端 SDK。

重要信息

  1. WxJava 荣获 GitCode 2024年度十大开源社区奖项
  2. 项目合作洽谈请联系微信binary0000(在微信里自行搜索并添加好友,请注明来意,如有关于SDK问题需讨论请参考下文入群讨论,不要加此微信)。
  3. 2026-01-03 发布 【4.8.0正式版】
  4. 贡献源码可以参考视频:【贡献源码全过程(上集)】【贡献源码全过程(下集)】 ,友情提供:程序员小山与Bug
  5. 新手重要提示:本项目仅是一个SDK开发工具包,未提供Web实现,建议使用 mavengradle 引用本项目即可使用本SDK提供的各种功能,详情可参考 【Demo项目】 或本项目中的部分单元测试代码;
  6. 微信开发新手请务必阅读【开发文档】(Gitee Wiki 或者 Github Wiki)的常见问题部分,可以少走很多弯路,节省不少时间。
  7. 技术交流群:想获得QQ群/微信群/钉钉企业群等信息的同学,请使用微信扫描上面的微信公众号二维码关注 WxJava 后点击相关菜单即可获取加入方式,同时也可以在微信中搜索 weixin-java-toolsWxJava 后选择正确的公众号进行关注,该公众号会及时通知SDK相关更新信息,并不定期分享微信Java开发相关技术知识;
  8. 钉钉技术交流群:32206329(技术交流2群), 30294972(技术交流1群,目前已满),35724728(通知群,实时通知Github项目变更记录)。
  9. 微信开发新手或者Java开发新手在群内提问或新开Issue提问前,请先阅读【提问的智慧】,并确保已查阅过 【开发文档Wiki】 ,避免浪费大家的宝贵时间;
  10. 寻求帮助时需贴代码或大长串异常信息的,请利用 http://paste.ubuntu.com

其他说明

  1. 阅读源码的同学请注意,本SDK为简化代码编译时加入了lombok支持,如果不了解lombok的话,请先学习下相关知识,比如可以阅读此文章
  2. 如有新功能需求,发现BUG,或者由于微信官方接口调整导致的代码问题,可以直接在【Issues】页提出issue,便于讨论追踪问题;
  3. 如果需要贡献代码,请务必在提交PR之前先仔细阅读【代码贡献指南】,谢谢理解配合;
  4. 目前本SDK最新版本要求的JDK最低版本是8,使用7的同学可以使用WxJava 3.8.0及以前版本,而还在使用JDK6的用户请参考【此项目】 ,而其他更早的JDK版本则需要自己改造实现。
  5. 本项目在开源中国的页面,欢迎大家积极留言评分 🙂
  6. SDK开发文档请查阅 【开发文档Wiki】,部分文档可能未能及时更新,如有发现,可以及时上报或者自行修改。
  7. 如果本开发工具包对您有所帮助,欢迎对我们的努力进行肯定,可以直接前往【托管于码云的项目首页】,在页尾部分找到“捐助”按钮进行打赏,多多益善 😄。非常感谢各位打赏和捐助的同学!
  8. 各个模块的Javadoc可以在线查看:weixin-java-miniappweixin-java-payweixin-java-mpweixin-java-commonweixin-java-cpweixin-java-open
  9. 本SDK项目在以下代码托管网站同步更新:

Maven 引用方式

注意:最新版本(包括测试版)为 Maven Central,以下为最新正式版。

方式一:使用 BOM 统一管理版本(推荐)

如果同时使用多个 WxJava 模块,推荐通过 BOM 统一管理版本,无需为每个模块单独指定版本号。 wx-java-bom4.8.3.B 版本开始提供,请使用该版本或更高版本:

<properties>
  <wx-java.version>4.8.3.B</wx-java.version>
</properties>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.github.binarywang</groupId>
      <artifactId>wx-java-bom</artifactId>
      <version>${wx-java.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

之后直接引入所需模块,无需指定版本:

<dependency>
  <groupId>com.github.binarywang</groupId>
  <artifactId>weixin-java-mp</artifactId>
</dependency>
<dependency>
  <groupId>com.github.binarywang</groupId>
  <artifactId>weixin-java-pay</artifactId>
</dependency>

方式二:直接引用单个模块

<dependency>
  <groupId>com.github.binarywang</groupId>
  <artifactId>(不同模块参考下文)</artifactId>
  <version>4.8.0</version>
</dependency>

注意


最小示例

公众号(MP)示例:获取 AccessToken
WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl();
config.setAppId("your-app-id");
config.setSecret("your-secret");

WxMpService wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(config);

String accessToken = wxMpService.getAccessToken();
System.out.println(accessToken);
小程序(MiniApp)示例:code2Session
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
config.setAppid("your-app-id");
config.setSecret("your-secret");

WxMaService wxMaService = new WxMaServiceImpl();
wxMaService.setWxMaConfig(config);

WxMaJscode2SessionResult result = wxMaService.getUserService().getSessionInfo("js-code");
System.out.println(result.getOpenid());

版本说明

点此展开查看
  1. 本项目定为大约每半年左右发布一次正式版,遇到重大问题需修复会及时提交新版本,欢迎大家随时提交 Pull Request
  2. 每次代码更新都会自动构建出新版本方便及时尝鲜,版本号格式为 x.x.x-时间戳;
  3. 发布正式版时,develop 分支代码合并进入 release 分支),版本号格式为 X.X.0(如2.1.02.2.0等);
  4. 每隔一段时间后,会发布测试版本(如3.6.8.B,即尾号不为0,并添加B,以区别于正式版),代码仅存在于 develop 分支中;
  5. 目前最新版本号为 Maven Central ,也可以通过访问以下链接分别查看各个模块最新的版本: 【微信支付】【小程序】【公众号】【企业微信】【开放平台】【视频号】

应用案例

完整案例登记列表,请【访问这里】查看,欢迎登记更多的案例。

以下为节选的部分案例, 点此展开查看

开源项目:

小程序:

公众号:

企业微信:

其他:


贡献者列表

特别感谢参与贡献的所有同学,所有贡献者列表请在此处查看,欢迎大家继续踊跃贡献代码!

GitHub Stargazers over time

Star History Chart

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.