# 微信公众号

# 核心配置

# Yaml配置

# ========================= HaiChuang Settings =========================
haichuang:
  sdk:
    wxmp:
      # AppId
      app-id:
      # AppSecret
      app-secret:
      # 微信公众平台服务器配置Token
      # 可选参数, 填写此参数时可以使用框架自带接口填写至服务器地址
      token:
1
2
3
4
5
6
7
8
9
10
11

# 核心Service

# WxMpService (opens new window)

全限定名:pro.haichuang.framework.sdk.wxmp.service.WxMpService (opens new window)

微信公众号核心Service

该类为公众号核心Service,封装了常用的方法

警告

所有微信公众号相关操作必须使用WxMpService接口

# DefaultWxMpServiceImpl (opens new window)

全限定名:pro.haichuang.framework.sdk.wxmp.service.DefaultWxMpServiceImpl (opens new window)

微信公众号核心Service默认实现

该类为微信公众号核心Service默认实现,已默认注入到Spring中,支持自定义实现(需要手动注入到Spring中)

# 核心工具类

# WxMpUtils (opens new window)

全限定名:pro.haichuang.framework.sdk.wxmp.util.WxMpUtils (opens new window)

微信公众号工具类

该类为微信公众号工具类,基于第三方二次封装,推荐使用WxMpService进行操作

# 数据存储

# WxMpDataStore (opens new window)

全限定名:pro.haichuang.framework.sdk.wxmp.store.WxMpDataStore (opens new window)

微信公众号数据存储类

该类为微信公众号数据存储类,用于储存与微信公众号对接时产生的一些Key等数据

警告

微信公众号BaseAccessToken|WebAccessToken|JsApiTicket存储必须使用pro.haichuang.framework.sdk.wxmp.store.WxMpDataStore接口

允许自定义实现(实现后需要手动注入到Spring)中, 默认实现类(已默认注入到Spring中): pro.haichuang.framework.sdk.wxmp.store.DefaultWxMpDataStore(基于Java自带ConcurrentHashMap进行存储, DelayQueue进行数据延时过期)

提交其他实现类:

  1. pro.haichuang.framework.sdk.wxmp.store.WxMpRedisDataStore(建议使用): 基于Redis进行存储, 需要引入hc-redis模块

# DefaultWxMpDataStore (opens new window)

全限定名:pro.haichuang.framework.sdk.wxmp.store.DefaultWxMpDataStore (opens new window)

微信公众号数据存储类默认实现

该类为微信公众号数据存储类默认实现,采用java.util.concurrent.DelayQueue延时队列与java.util.concurrent.ConcurrentHashMap实现,性能较低,且重启应用时数据将丢失

# WxMpRedisDataStore (opens new window)

全限定名:pro.haichuang.framework.sdk.wxmp.store.WxMpRedisDataStore (opens new window)

微信公众号数据存储Redis实现

该类为微信公众号数据存储类默认实现,采用Redis进行实现

此类效率较高,当Redis开启持久化时将保障应用重启时数据不会丢失,建议开发人员手动引用hc-Redis模块并手动注入此类以替换DefaultWxMpDataStore

Example:

<dependency>
    <groupId>pro.haichuang.framework</groupId>
    <artifactId>hc-redis</artifactId>
</dependency>
1
2
3
4
@SpringBootConfiguration
public class WxMpStoreConfig {

    @Bean
    public WxMpDataStore wxMpDataStore() {
        return new WxMpRedisDataStore();
    }
}
1
2
3
4
5
6
7
8

# 👇Example👇

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private WxMpService wxMpService;
    
    ......
}
1
2
3
4
5
6
7
8
9
Last Updated: 12/14/2021, 5:11:19 PM