import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;
import cn.binarywang.wx.miniapp.message.WxMaMessageHandler;
import com.wxt.iforbao.base.bean.AppConfigBean;
import com.wxt.iforbao.base.mapper.AppConfigMapper;
import com.wxt.iforbao.constants.AppConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
import java.util.List;
/**
* @author <a href="https://github.com/binarywang">Binary Wang</a>
*/
@Configuration
@ConditionalOnClass(WxMaService.class)
public class WxMaConfiguration {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Resource
private AppConfigMapper appConfigMapper;
private final WxMaMessageHandler logHandler = (wxMessage, context, service, sessionManager) -> {
};
@Bean
@ConditionalOnMissingBean
public WxMaConfig maConfig() {
List<AppConfigBean> beanList = appConfigMapper.getConfigByKeyType(AppConstants.KeyType.WX_CONFIG);
WxMaInMemoryConfig config = new WxMaInMemoryConfig();
if(beanList!=null && !beanList.isEmpty()){
config.setAppid(beanList.get(0).getDecode());
config.setSecret(beanList.get(1).getDecode());
}
return config;
}
@Bean
@ConditionalOnMissingBean
public WxMaService wxMaService(WxMaConfig config) {
WxMaService service = new WxMaServiceImpl();
service.setWxMaConfig(config);
return service;
}
}
import com.wxt.iforbao.base.bean.AppConfigBean;
import com.wxt.iforbao.base.mapper.AppConfigMapper;
import com.wxt.iforbao.constants.AppConstants;
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
import me.chanjar.weixin.mp.api.WxMpService;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
import java.util.List;
/**
* wechat mp configuration
*
* @author Binary Wang(https://github.com/binarywang)
*/
@Configuration
@ConditionalOnClass(WxMpService.class)
public class WxMpConfiguration {
@Resource
private AppConfigMapper appConfigMapper;
@Bean
@ConditionalOnMissingBean
public WxMpConfigStorage configStorage() {
WxMpInMemoryConfigStorage configStorage = new WxMpInMemoryConfigStorage();
List<AppConfigBean> beanList = appConfigMapper.getConfigByKeyType(AppConstants.KeyType.WX_MA_CONFIG);
if(beanList!=null && !beanList.isEmpty()){
configStorage.setAppId(beanList.get(0).getDecode());
configStorage.setSecret(beanList.get(1).getDecode());
configStorage.setToken(beanList.get(2).getDecode());
configStorage.setAesKey(beanList.get(3).getDecode());
}
return configStorage;
}
@Bean
@ConditionalOnMissingBean
public WxMpService wxMpService(WxMpConfigStorage configStorage) {
WxMpService wxMpService = new me.chanjar.weixin.mp.api.impl.WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(configStorage);
return wxMpService;
}
}