|
18 | 18 | </a> |
19 | 19 | </div> |
20 | 20 |
|
21 | | -### 微信`Java`开发工具包,支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。 |
| 21 | +### 微信 `Java` 开发工具包,支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。 |
| 22 | + |
| 23 | +### 特别赞助 |
22 | 24 | <div align="center"> |
23 | | - <b>特别赞助</b> |
24 | 25 | <table cellspacing="0" cellpadding="0" width="500"> |
25 | 26 | <tr> |
26 | 27 | <td align="center" colspan="3"> |
|
59 | 60 | </table> |
60 | 61 | </div> |
61 | 62 |
|
| 63 | +### 目录索引 |
| 64 | +- [快速开始(3分钟)](#快速开始3分钟) |
| 65 | +- [我该选哪个模块?](#我该选哪个模块) |
| 66 | +- [Maven 引用方式](#maven-引用方式) |
| 67 | +- [最小示例](#最小示例) |
| 68 | +- [重要信息](#重要信息) |
| 69 | +- [其他说明](#其他说明) |
| 70 | +- [版本说明](#版本说明) |
| 71 | +- [应用案例](#应用案例) |
| 72 | +- [特别赞助](#特别赞助) |
| 73 | +- [贡献者列表](#贡献者列表) |
| 74 | + |
| 75 | +### 快速开始(3分钟) |
| 76 | +1. 根据业务场景选择模块(见下方“我该选哪个模块?”) |
| 77 | +2. 引入 Maven 依赖并选择对应模块 |
| 78 | +3. 参考最小示例完成初始化并调用 API |
| 79 | + |
| 80 | +### 我该选哪个模块? |
| 81 | + |
| 82 | +| 业务场景 | 模块 | artifactId | |
| 83 | +|---|---|---| |
| 84 | +| 微信公众号开发 | MP | `weixin-java-mp` | |
| 85 | +| 微信小程序开发 | MiniApp | `weixin-java-miniapp` | |
| 86 | +| 微信支付 | Pay | `weixin-java-pay` | |
| 87 | +| 企业微信 | CP | `weixin-java-cp` | |
| 88 | +| 微信开放平台(第三方平台) | Open | `weixin-java-open` | |
| 89 | +| 视频号 / 微信小店 | Channel | `weixin-java-channel` | |
| 90 | + |
| 91 | +> 移动端(iOS/Android)微信登录、分享等能力仍需集成微信官方客户端 SDK;本项目为服务端 SDK。 |
| 92 | +
|
62 | 93 | ### 重要信息 |
63 | 94 | 1. [`WxJava` 荣获 `GitCode` 2024年度十大开源社区奖项](https://mp.weixin.qq.com/s/wM_UlMsDm3IZ1CPPDvcvQw)。 |
64 | 95 | 2. 项目合作洽谈请联系微信`binary0000`(在微信里自行搜索并添加好友,请注明来意,如有关于SDK问题需讨论请参考下文入群讨论,不要加此微信)。 |
|
112 | 143 | - **微信开放平台**(`weixin-java-open`)主要用于第三方平台,代公众号或小程序进行开发和管理 |
113 | 144 |
|
114 | 145 |
|
115 | | ---------------------------------- |
116 | | -### HTTP 客户端支持 |
117 | 146 |
|
118 | | -本项目同时支持多种 HTTP 客户端实现,默认推荐使用 **Apache HttpClient 5.x**(最新稳定版本)。 |
| 147 | +--------------------------------- |
| 148 | +### 最小示例 |
119 | 149 |
|
120 | | -#### 支持的 HTTP 客户端类型 |
| 150 | +<details> |
| 151 | +<summary>公众号(MP)示例:获取 AccessToken</summary> |
121 | 152 |
|
122 | | -| HTTP 客户端 | 说明 | 配置值 | 推荐程度 | |
123 | | -|------------|------|--------|---------| |
124 | | -| Apache HttpClient 5.x | Apache HttpComponents Client 5.x,最新版本 | `HttpComponents` | ⭐⭐⭐⭐⭐ 推荐 | |
125 | | -| Apache HttpClient 4.x | Apache HttpClient 4.x,向后兼容 | `HttpClient` | ⭐⭐⭐⭐ 兼容 | |
126 | | -| OkHttp | Square OkHttp 客户端 | `OkHttp` | ⭐⭐⭐ 可选 | |
127 | | -| Jodd-http | Jodd 轻量级 HTTP 客户端 | `JoddHttp` | ⭐⭐ 可选 | |
| 153 | +```java |
| 154 | +WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl(); |
| 155 | +config.setAppId("your-app-id"); |
| 156 | +config.setSecret("your-secret"); |
128 | 157 |
|
129 | | -#### 配置方式 |
| 158 | +WxMpService wxMpService = new WxMpServiceImpl(); |
| 159 | +wxMpService.setWxMpConfigStorage(config); |
130 | 160 |
|
131 | | -**Spring Boot 配置示例:** |
| 161 | +String accessToken = wxMpService.getAccessToken(); |
| 162 | +System.out.println(accessToken); |
| 163 | +``` |
132 | 164 |
|
133 | | -```properties |
134 | | -# 使用 HttpClient 5.x(推荐,MP/MiniApp/CP/Channel/QiDian 模块默认) |
135 | | -wx.mp.config-storage.http-client-type=HttpComponents |
| 165 | +</details> |
136 | 166 |
|
137 | | -# 使用 HttpClient 4.x(兼容模式) |
138 | | -wx.mp.config-storage.http-client-type=HttpClient |
| 167 | +<details> |
| 168 | +<summary>小程序(MiniApp)示例:code2Session</summary> |
139 | 169 |
|
140 | | -# 使用 OkHttp |
141 | | -wx.mp.config-storage.http-client-type=OkHttp |
| 170 | +```java |
| 171 | +WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); |
| 172 | +config.setAppid("your-app-id"); |
| 173 | +config.setSecret("your-secret"); |
142 | 174 |
|
143 | | -# 使用 Jodd-http |
144 | | -wx.mp.config-storage.http-client-type=JoddHttp |
145 | | -``` |
| 175 | +WxMaService wxMaService = new WxMaServiceImpl(); |
| 176 | +wxMaService.setWxMaConfig(config); |
146 | 177 |
|
147 | | -**注意**:如果使用 Multi-Starter(如 `wx-java-mp-multi-spring-boot-starter`),枚举值需使用大写下划线格式: |
148 | | -```properties |
149 | | -# Multi-Starter 配置格式 |
150 | | -wx.mp.config-storage.http-client-type=HTTP_COMPONENTS # 注意使用大写下划线 |
| 178 | +WxMaJscode2SessionResult result = wxMaService.getUserService().getSessionInfo("js-code"); |
| 179 | +System.out.println(result.getOpenid()); |
151 | 180 | ``` |
152 | 181 |
|
153 | | -**注意事项:** |
154 | | -1. **MP、MiniApp、Channel、QiDian 模块**已完整支持 HttpClient 5.x,默认推荐使用 |
155 | | -2. **CP 模块**的支持情况取决于具体使用的 Starter 版本,请参考对应模块文档 |
156 | | -3. 如需使用 OkHttp 或 Jodd-http,需在项目中添加对应的依赖(scope为provided) |
157 | | -4. HttpClient 4.x 和 HttpClient 5.x 可以共存,按需配置即可 |
158 | | - |
| 182 | +</details> |
159 | 183 |
|
160 | 184 | --------------------------------- |
161 | 185 | ### 版本说明 |
|
0 commit comments