zoukankan      html  css  js  c++  java
  • 12.18 微信模板消息推送

    官方文档:https://mp.weixin.qq.com/wiki

    模板消息推送文档,有固定的格式

    准备工作:

    项目配置文件:

    wechat:
       templateId:
        orderStatus: e-Cqq67QxD6YNI41iRiqawEYdFavW_7pc7LyEMb-yeQ//设置模板ID
    

      配置文件

    @Data
    @Component
    @ConfigurationProperties(prefix = "wechat")
    public class WechatAccountConfig {
    
        
        /**
         * 微信模版id
         */
        private Map<String, String> templateId;
    }
    

      

    1.创建service

    public interface PushMessageService {
    
        /**
         * 订单状态变更消息
         * @param orderDTO
         */
        void orderStatus(OrderDTO orderDTO);
    }
    

      2.实现service

    @Service
    @Slf4j
    public class PushMessageServiceImpl implements PushMessageService {
    
        @Autowired
        private WxMpService wxMpService;
    
        @Autowired
        private WechatAccountConfig accountConfig;
    
        @Override
        public void orderStatus(OrderDTO orderDTO) {
            WxMpTemplateMessage templateMessage = new WxMpTemplateMessage();
            templateMessage.setTemplateId(accountConfig.getTemplateId().get("orderStatus"));
            templateMessage.setToUser(orderDTO.getBuyerOpenid());
    
            List<WxMpTemplateData> data = Arrays.asList(
                    new WxMpTemplateData("first", "亲,请记得收货。"),
                    new WxMpTemplateData("keyword1", "微信点餐"),
                    new WxMpTemplateData("keyword2", "18868812345"),
                    new WxMpTemplateData("keyword3", orderDTO.getOrderId()),
                    new WxMpTemplateData("keyword4", orderDTO.getOrderStatusEnum().getMessage()),
                    new WxMpTemplateData("keyword5", "¥" + orderDTO.getOrderAmount()),
                    new WxMpTemplateData("remark", "欢迎再次光临!")
            );
            templateMessage.setData(data);
            try {
                wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
            }catch (WxErrorException e) {
                log.error("【微信模版消息】发送失败, {}", e);
            }
        }
    }
    

      订单完结是发送

    @Service
    @Slf4j
    public class OrderServiceImpl implements OrderService {
    
        @Autowired
        private ProductService productService;
    
        @Autowired
        private OrderDetailRepository orderDetailRepository;
    
        @Autowired
        private OrderMasterRepository orderMasterRepository;
    
        @Autowired
        private PayService payService;
    
        @Autowired
        private PushMessageService pushMessageService;
    @Override
        @Transactional
        public OrderDTO finish(OrderDTO orderDTO) {
            //判断订单状态
            if (!orderDTO.getOrderStatus().equals(OrderStatusEnum.NEW.getCode())) {
                log.error("【完结订单】订单状态不正确, orderId={}, orderStatus={}", orderDTO.getOrderId(), orderDTO.getOrderStatus());
                throw new SellException(ResultEnum.ORDER_STATUS_ERROR);
            }
    
            //修改订单状态
            orderDTO.setOrderStatus(OrderStatusEnum.FINISHED.getCode());
            OrderMaster orderMaster = new OrderMaster();
            BeanUtils.copyProperties(orderDTO, orderMaster);
            OrderMaster updateResult = orderMasterRepository.save(orderMaster);
            if (updateResult == null) {
                log.error("【完结订单】更新失败, orderMaster={}", orderMaster);
                throw new SellException(ResultEnum.ORDER_UPDATE_FAIL);
            }
    
            //推送微信模版消息
            pushMessageService.orderStatus(orderDTO);
    
            return orderDTO;
        }
    }
    

      

  • 相关阅读:
    jquery点击展开-收起
    jquery-选择器
    导航-三级联动
    Apriori算法
    K近邻算法
    宝贵数据集——用于数据挖掘、机器学习、文本挖掘
    Microsoft 神经网络分析算法
    Java网络爬虫
    写Java须知CPU缓存
    MapReduce实现计数
  • 原文地址:https://www.cnblogs.com/tanghao666/p/8060338.html
Copyright © 2011-2022 走看看