WxJava 微信开发包 - 新手入门指南

WxJava 微信开发包 - 新手入门指南 WxJava 微信开发包 - 新手入门指南项目概览项目名称Binary Wang/WxJavaStarsGVP ⭐⭐⭐⭐⭐组织Binary Wang语言Java标签GVP, Java, 微信开发, 微信公众号, 微信支付项目简介WxJava 是一个基于 Java 的微信开发工具包支持微信公众号、微信支付、小程序、企业微信等多种微信服务的开发。它是 Gitee 的 GVP 项目是国内最流行的 Java 微信开发库之一。核心特性1. 多平台支持•微信公众号: 完整支持公众号开发•微信支付: 支持 Native、JSAPI、H5 等多种支付方式•微信小程序: 小程序开发支持•企业微信: 企业微信接口支持•微信开放平台: 第三方平台支持2. 功能丰富•消息处理 (文本、图片、语音、视频等)•菜单管理•用户管理•模板消息•素材管理•客服消息•数据分析3. 支付能力•统一下单•订单查询•退款•分账•红包•企业付款4. 技术特点•基于 Spring Boot 自动配置•支持 Redis 缓存 AccessToken•提供 Starter 简化集成•支持多租户多公众号使用场景1.微信公众号开发- 快速构建公众号应用2.微信小程序后端- 小程序服务端开发3.微信支付集成- 接入微信支付功能4.企业微信应用- 企业微信二次开发5.第三方平台开发- 微信开放平台开发项目结构wxjava/├── wx-java-common/ # 公共模块├── wx-java-mp/ # 公众号模块├── wx-java-pay/ # 支付模块├── wx-java-miniapp/ # 小程序模块├── wx-java-cp/ # 企业微信模块├── wx-java-open/ # 开放平台模块└── wx-spring-boot-starter/ # Spring Boot Starter快速入门环境要求•JDK 8•Maven 3.6•Spring Boot 2.x / 3.x (可选)1. 添加依赖Maven 依赖:!-- 公众号 --dependency groupIdcom.github.binarywang/groupId artifactIdweixin-java-mp/artifactId version4.5.0/version/dependency !-- 支付 --dependency groupIdcom.github.binarywang/groupId artifactIdweixin-java-pay/artifactId version4.5.0/version/dependency !-- Spring Boot Starter --dependency groupIdcom.github.binarywang/groupId artifactIdwx-java-spring-boot-starter/artifactId version4.5.0/version/dependency2. 配置application.yml:wx: mp: app-id: your_app_id secret: your_app_secret token: your_token aes-key: your_aes_key pay: app-id: your_app_id mch-id: your_mch_id mch-key: your_mch_key cert-path: classpath:apiclient_cert.p123. 配置类Configurationpublic class WxMpConfig { Value(${wx.mp.app-id}) private String appId; Value(${wx.mp.secret}) private String secret; Bean public WxMpService wxMpService() { WxMpServiceImpl service new WxMpServiceImpl(); WxMpDefaultConfigImpl config new WxMpDefaultConfigImpl(); config.setAppId(appId); config.setSecret(secret); service.setWxMpConfigStorage(config); return service; }}代码示例1. 公众号消息处理RestControllerRequestMapping(/wx/portal)public class WxPortalController { Autowired private WxMpService wxMpService; GetMapping(produces text/plain;charsetutf-8) public String validate( RequestParam String signature, RequestParam String timestamp, RequestParam String nonce, RequestParam String echostr) { if (wxMpService.checkSignature(timestamp, nonce, signature)) { return echostr; } return 非法请求; } PostMapping(produces application/xml;charsetUTF-8) public String handleMessage(RequestBody String requestBody) { WxMpXmlMessage message WxMpXmlMessage.fromXml(requestBody); WxMpXmlOutMessage response null; switch (message.getMsgType()) { case TEXT: response WxMpXmlOutMessage.TEXT() .content(收到文本消息: message.getContent()) .fromUser(message.getToUser()) .toUser(message.getFromUser()) .build(); break; case EVENT: // 处理事件消息 break; } return response.toXml(); }}2. 微信支付Servicepublic class WxPayService { Autowired private WxPayService wxPayService; public WxPayUnifiedOrderResult createOrder(String orderId, BigDecimal amount) { WxPayUnifiedOrderRequest request new WxPayUnifiedOrderRequest(); request.setBody(商品描述); request.setOutTradeNo(orderId); request.setTotalFee(amount.multiply(new BigDecimal(100)).intValue()); request.setSpbillCreateIp(127.0.0.1); request.setNotifyUrl(https://your-domain.com/wx/pay/notify); request.setTradeType(JSAPI); request.setOpenid(用户openid); return wxPayService.unifiedOrder(request); }}3. 获取用户信息public WxMpUser getUserInfo(String openid) { try { return wxMpService.getUserService().userInfo(openid); } catch (WxErrorException e) { // 处理异常 return null; }}4. 发送模板消息public boolean sendTemplateMessage(String openid, String templateId) { WxMpTemplateMessage templateMessage WxMpTemplateMessage.builder() .toUser(openid) .templateId(templateId) .url(https://example.com) .build(); templateMessage.addData(new WxMpTemplateData(first, 您好, #173177)); templateMessage.addData(new WxMpTemplateData(keyword1, 订单号, #173177)); templateMessage.addData(new WxMpTemplateData(remark, 感谢您的使用, #173177)); try { wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage); return true; } catch (WxErrorException e) { return false; }}学习资源官方资源•文档: https://github.com/binarywang/weixin-java-tools/wiki[1]•示例: 项目包含多个示例项目•交流群: 官方 QQ 群•Demo: 提供完整的演示项目常见问题Q: AccessToken 如何管理A: WxJava 提供了内存缓存和 Redis 缓存两种方式建议生产环境使用 Redis 缓存。Q: 如何处理支付回调A: 在配置文件中设置 notifyUrl然后在对应接口处理回调通知。Q: 支持哪些支付方式A: 支持 Native、JSAPI、H5、App、小程序等多种支付方式。Q: 如何获取用户 OpenIDA: 通过 OAuth2 授权获取用户的 OpenID。推荐指数⭐⭐⭐⭐⭐ (5/5)WxJava 是 Java 微信开发的首选工具包功能完善、文档齐全、社区活跃。无论是个人开发者还是企业级应用都是一个非常值得推荐的选择。总结WxJava 极大简化了 Java 开发者接入微信生态的复杂度提供了丰富的 API 和便捷的封装。它的设计遵循 Spring Boot 风格易于集成和使用是微信开发的必备工具。References[1]:https://github.com/binarywang/weixin-java-tools/wiki