mica-weixin 使用文档

说明

Mica Maven release

jfinal weixin 的 spring boot starter,这个starter是为了方便boot用户使用。

具体demo请查看:mica-weixin-demoJFinal-weixin文档

开源推荐

兼容性

version spring boot version java version
3.0.0 3.x 17
2.1.2 1.x ~ 2.x 1.8

Jar包依赖(最新)

<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-weixin</artifactId>
<version>3.0.0</version>
</dependency>

## 使用
### 消息
#### 公众号
- 继承`DreamMsgControllerAdapter`,实现需要重写的消息。
- 类添加注解`@WxMsgController`,注解value为你的消息地址,使用/weixin/wx,已经组合[@RequestMapping和@Controller]

### 小程序
- 继承`DreamWxaMsgController`,实现需要重写的消息。
- 添加注解`@WxMsgController`,注解value为你的消息地址,使用/weixin/wxa,已经组合[@RequestMapping和@Controller]

### Api
- 类添加`@WxApi`,注解value为你的消息地址,使用/weixin/api,已经组合[@RequestMapping和@Controller]

### access token cache
您可以配置 [mica-caffeine](https://gitee.com/596392912/mica/tree/master/mica-caffeine) 或 [mica-redis](https://gitee.com/596392912/mica/tree/master/mica-redis) 实现 access token 的缓存。

### 配置
| 配置项 | 默认值 | 说明 |
| ----- | ------ | ------ |
| dream.weixin.access-token-cache | dreamWeixinCache#7100s | 缓存名,需要开启spring cache |
| dream.weixin.app-id-key | appId | 多公众号参数名,如:/weixin/wx?appId=xxx |
| dream.weixin.dev-mode | false | 开发模式 |
| dream.weixin.url-patterns | /weixin/* | weixin 消息处理spring拦截器url前缀 |
| dream.weixin.wx-configs | 公众号的配置 | 多公众号配置 |
| dream.weixin.wxa-configs | 小程序配置 | 小程序配置 |

`注意`:
- demo中的`application.yml`
```yml
dream:
weixin:
dev-mode: true
wx-configs:
- appId: wx9803d1188fa5fbda
appSecret: db859c968763c582794e7c3d003c3d87
- appId: wxc03edcd008ad1e70
appSecret: 11ed9e2b8e3e3c131e7be320a42b2b5a
token: 123456
encodingAesKey: xxx
messageEncrypt: true
wxa-configs:
- app-id: wx4f53594f9a6b3dcb
app-secret: eec6482ba3804df05bd10895bace0579
  • access-token-cache建议配置有效时间7100秒。

自定义公众号vs小程序配置

注意:实现 WxConfigLoader 即可,可以从数据库中获取。

/**
* 微信配置加载器,用于自定义实现
*
* @author L.cm
*/
@Configuration
public class WxConfigDatabaseLoader implements WxConfigLoader {

@Override
public List<ApiConfig> loadWx() {
// 公众号
ApiConfig wxConf = new ApiConfig();
wxConf.setAppId("wxc03edcd008ad1e70");
wxConf.setAppSecret("11ed9e2b8e3e3c131e7be320a42b2b5a");
wxConf.setToken("123456");
return Collections.singletonList(wxConf);
}

@Override
public List<WxaConfig> loadWxa() {
// 小程序
return Collections.emptyList();
}
}

微信 vs 公众号

如梦技术

精彩内容每日推荐!!!