# wechat-sdk **Repository Path**: xitieyi/wechat-sdk ## Basic Information - **Project Name**: wechat-sdk - **Description**: 微信小程序sdk二次封装 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-07 - **Last Updated**: 2025-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- # WeChat SDK 二次封装库 这是一个基于微信官方接口的 Java SDK 二次封装库,旨在简化微信开发流程,提供更简洁易用的 API 接口。本库依赖 `RestTemplate` 和 `RedisTemplate` 实现 HTTP 请求与缓存管理,开箱即用,适用于 Spring Boot 项目。 --- ## 📦 1. 准备工作 ### 1.1 环境要求 - JDK 8 或以上 - Maven 3.5+ - Spring Boot 项目(支持 `@ComponentScan` 和 Bean 注入) - 已配置好 `RestTemplate` 和 `RedisTemplate` > ⚠️ **注意**:请确保在您的主项目中已正确装配以下两个 Bean: > > - `org.springframework.web.client.RestTemplate` > - `org.springframework.data.redis.core.RedisTemplate` 您可以在配置类中通过 `@Bean` 手动注册,或使用 Spring Boot 自动配置。 --- ## 🛠️ 2. 构建与安装 SDK 到本地仓库 ### 步骤一:使用 IDEA 打开项目 1. 使用 IntelliJ IDEA 打开本 SDK 项目。 2. 确保 Maven 项目已正确加载。 ### 步骤二:清理并打包项目 在终端执行以下命令: ```bash mvn clean mvn package ``` 该操作将在 `target/` 目录下生成 `wechat-sdk-1.0.jar` 文件。 ### 步骤三:安装 JAR 到本地 Maven 仓库 在项目根目录执行以下命令,将 SDK 安装到本地 Maven 仓库: ```bash mvn install:install-file \ -Dfile=./target/wechat-sdk-1.0.jar \ -DgroupId=org.thrj \ -DartifactId=wechat-sdk \ -Dversion=1.0.0 \ -Dpackaging=jar ``` > ✅ 成功后,您即可在其他 Maven 项目中通过依赖引入此 SDK。 --- ## 📁 3. 在目标项目中引入 SDK 在需要使用微信功能的项目的 `pom.xml` 中添加如下依赖: ```xml org.thrj wechat-sdk 1.0.0 ``` 保存文件后,Maven 会自动下载并引入该依赖。 --- ## 🔍 4. 启用组件扫描 由于 SDK 中的组件未被 Spring Boot 自动扫描,需在您的**主启动类**上添加包扫描注解: ```java @SpringBootApplication @ComponentScan(basePackages = {"org.thrj.wechat", "your.own.package"}) // 添加 SDK 包路径 public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } } ``` > 🔁 替换 `your.own.package` 为您的实际业务包名。 --- ## 🧪 5. 使用示例(可选补充) SDK 提供了常用的微信接口封装,例如: - 获取 access_token - 发送模板消息 - 处理公众号事件推送 - 小程序登录鉴权等 具体 API 文档请参考后续更新的 `API.md` 或源码注释。 --- ## ❓ 常见问题 ### Q:为什么提示找不到 `RestTemplate`? A:请检查是否已在配置类中注入 `RestTemplate` Bean,例如: ```java @Bean public RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(); MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.TEXT_HTML, MediaType.TEXT_PLAIN)); restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter); return restTemplate; } ``` ### Q:Redis 缓存未生效? A:确保 `RedisTemplate` 已正确配置,并能连接 Redis 服务。例如: ```java @Bean public RedisTemplate redisTemplate(RedisConnectionFactory factory) { RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(factory); // 使用 Jackson2JsonRedisSerializer 来序列化和反序列化 redis 的 value 值 ObjectMapper mapper = new ObjectMapper(); mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(mapper, Object.class); // 设置 key 和 value 的序列化方式 template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(jackson2JsonRedisSerializer); // 设置 hash 结构的 key 和 value 的序列化方式 template.setHashKeySerializer(new StringRedisSerializer()); template.setHashValueSerializer(jackson2JsonRedisSerializer); // 初始化 template template.afterPropertiesSet(); return template; } ``` --- ## 📞 联系与反馈 如有任何问题或建议,请联系维护者或提交 Issue。 > Happy Coding with WeChat SDK! 💬 --- *文档最后更新:2025年10月7日*