|
|
@@ -1,115 +0,0 @@
|
|
|
-package org.linlinjava.litemall.wx.config;
|
|
|
-
|
|
|
-import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
|
-import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
|
|
|
-import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
|
|
|
-import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
|
|
|
-import cn.binarywang.wx.miniapp.config.WxMaConfig;
|
|
|
-import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;
|
|
|
-import cn.binarywang.wx.miniapp.message.WxMaMessageHandler;
|
|
|
-import cn.binarywang.wx.miniapp.message.WxMaMessageRouter;
|
|
|
-import com.google.common.collect.Lists;
|
|
|
-import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
|
|
|
-import me.chanjar.weixin.common.exception.WxErrorException;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
|
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
|
-import org.springframework.context.annotation.Bean;
|
|
|
-import org.springframework.context.annotation.Configuration;
|
|
|
-
|
|
|
-import java.io.File;
|
|
|
-
|
|
|
-/**
|
|
|
- * @author <a href="https://github.com/binarywang">Binary Wang</a>
|
|
|
- */
|
|
|
-@Configuration
|
|
|
-@ConditionalOnClass(WxMaService.class)
|
|
|
-@EnableConfigurationProperties(WxMaProperties.class)
|
|
|
-public class WxMaConfiguration {
|
|
|
- private static final WxMaMessageHandler templateMsgHandler = (wxMessage, context, service, sessionManager) ->
|
|
|
- service.getMsgService().sendTemplateMsg(WxMaTemplateMessage.builder()
|
|
|
- .templateId("此处更换为自己的模板id")
|
|
|
- .formId("自己替换可用的formid")
|
|
|
- .data(Lists.newArrayList(
|
|
|
- new WxMaTemplateMessage.Data("keyword1", "339208499", "#173177")))
|
|
|
- .toUser(wxMessage.getFromUser())
|
|
|
- .build());
|
|
|
-
|
|
|
- private final WxMaMessageHandler logHandler = (wxMessage, context, service, sessionManager) -> {
|
|
|
- System.out.println("收到消息:" + wxMessage.toString());
|
|
|
- service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("收到信息为:" + wxMessage.toJson())
|
|
|
- .toUser(wxMessage.getFromUser()).build());
|
|
|
- };
|
|
|
-
|
|
|
- private final WxMaMessageHandler textHandler = (wxMessage, context, service, sessionManager) ->
|
|
|
- service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("回复文本消息")
|
|
|
- .toUser(wxMessage.getFromUser()).build());
|
|
|
-
|
|
|
- private final WxMaMessageHandler picHandler = (wxMessage, context, service, sessionManager) -> {
|
|
|
- try {
|
|
|
- WxMediaUploadResult uploadResult = service.getMediaService()
|
|
|
- .uploadMedia("image", "png",
|
|
|
- ClassLoader.getSystemResourceAsStream("tmp.png"));
|
|
|
- service.getMsgService().sendKefuMsg(
|
|
|
- WxMaKefuMessage
|
|
|
- .newImageBuilder()
|
|
|
- .mediaId(uploadResult.getMediaId())
|
|
|
- .toUser(wxMessage.getFromUser())
|
|
|
- .build());
|
|
|
- } catch (WxErrorException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- private final WxMaMessageHandler qrcodeHandler = (wxMessage, context, service, sessionManager) -> {
|
|
|
- try {
|
|
|
- final File file = service.getQrcodeService().createQrcode("123", 430);
|
|
|
- WxMediaUploadResult uploadResult = service.getMediaService().uploadMedia("image", file);
|
|
|
- service.getMsgService().sendKefuMsg(
|
|
|
- WxMaKefuMessage
|
|
|
- .newImageBuilder()
|
|
|
- .mediaId(uploadResult.getMediaId())
|
|
|
- .toUser(wxMessage.getFromUser())
|
|
|
- .build());
|
|
|
- } catch (WxErrorException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- };
|
|
|
- @Autowired
|
|
|
- private WxMaProperties properties;
|
|
|
-
|
|
|
- @Bean
|
|
|
- @ConditionalOnMissingBean
|
|
|
- public WxMaConfig config() {
|
|
|
- WxMaInMemoryConfig config = new WxMaInMemoryConfig();
|
|
|
- config.setAppid(this.properties.getAppid());
|
|
|
- config.setSecret(this.properties.getSecret());
|
|
|
- config.setToken(this.properties.getToken());
|
|
|
- config.setAesKey(this.properties.getAesKey());
|
|
|
- config.setMsgDataFormat(this.properties.getMsgDataFormat());
|
|
|
-
|
|
|
- return config;
|
|
|
- }
|
|
|
-
|
|
|
- @Bean
|
|
|
- @ConditionalOnMissingBean
|
|
|
- public WxMaService wxMaService(WxMaConfig config) {
|
|
|
- WxMaService service = new WxMaServiceImpl();
|
|
|
- service.setWxMaConfig(config);
|
|
|
- return service;
|
|
|
- }
|
|
|
-
|
|
|
- @Bean
|
|
|
- public WxMaMessageRouter router(WxMaService service) {
|
|
|
- final WxMaMessageRouter router = new WxMaMessageRouter(service);
|
|
|
- router
|
|
|
- .rule().handler(logHandler).next()
|
|
|
- .rule().async(false).content("模板").handler(templateMsgHandler).end()
|
|
|
- .rule().async(false).content("文本").handler(textHandler).end()
|
|
|
- .rule().async(false).content("图片").handler(picHandler).end()
|
|
|
- .rule().async(false).content("二维码").handler(qrcodeHandler).end();
|
|
|
- return router;
|
|
|
- }
|
|
|
-
|
|
|
-}
|