利用测试号实现微信配置模板消息的推送(SDK版)

说明:本文采用的是微信模板SDK开发,主要描述如何使用。

消息推送一共有两种,一种是客户端类似支付、下单完成等微信端的信息推送;另外一种就是后端管理页面的新消息的提醒(声音的提醒、弹框的提醒)。对于第一种,是微信端的消息推送,需要对微信模板的使用有所了解。第二种是后端提供服务的消息提醒。

客户模块的webSocket的使用:微信端的消息推送消息的最终效果如下图所示.

利用测试号实现微信配置模板消息的推送(SDK版)_第1张图片

具体开发流程如下:

1.首先需要进入微信测试号配置模板(在公众号中可以直接选择,附测试号登陆地址:                                                                      https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)

2.添加模板消息

{{first.DATA}}
商家名称:{{keyword1.DATA}} 
商家电话:{{keyword2.DATA}} 
订单号:{{keyword3.DATA}} 
状态:{{keyword4.DATA}} 
总价:{{keyword5.DATA}} 
{{remark.DATA}}

 

3.首先需要添如下的SDK,在该SDK中有微信授权登录、微信支付、支付宝支付、消息推送等接口,可供直接传入参数调用。(地址:https://github.com/Wechat-Group/WxJava)Maven管理加载以下依赖:

 

        
        
            com.github.binarywang
            weixin-java-mp
            2.8.0
        

4.设计接口。为什么需要设计接口呢?因为我们需要把模里面的参数一一传入,实现不同订单对应不同的消息。在发送消息的模板的时候是使用SDK中的wxMpService.getTemplateMsgService().sendTemplateMsg()这个接口,而参数就是WxMpTemplateMessag对象,在这个对象中可以将模板消息塞进去,最后直接发送此对象就行。本文的模板ID是放在配置文件中的,因此注入的配置文件类WechartAccountConfig

 
 

5.根据业务将模板中的信息动态的传入,然后调发送消息的Service,至此完成了消息的发送。最后在业务需求的地方直接调用此接口就可以完成一次消息的推送。具体实现如下代码:

@Slf4j
@Service
public class PushMessageServiceimpl implements PushMessageService {

    @Autowired
    private WxMpService wxMpService;
    @Autowired
    private WechartAccountConfig wechartAccountConfig;

    @Override
    public void orderStatus(OrderDto orderDto) {
        //调用SDK发送消息
        WxMpTemplateMessage wxMpTemplateMessage = new WxMpTemplateMessage();
        wxMpTemplateMessage.setTemplateId(wechartAccountConfig.getTemplateId().get("orderStatus"));
        wxMpTemplateMessage.setToUser("o6oCR0ZptF_U1lkn1LgIST5o-Wwk");

        List data = Arrays.asList(
                new WxMpTemplateData("first","亲,记得收货哦!"),
                new WxMpTemplateData("keyword1","湖北xx学院"),
                new WxMpTemplateData("keyword2","11111111111"),
                new WxMpTemplateData("keyword3",orderDto.getOrderId()),
                new WxMpTemplateData("keyword4",orderDto.getOrderAmountEnum().getMessage()),
                new WxMpTemplateData("keyword5","¥"+ orderDto.getOrderAmount()),
                new WxMpTemplateData("remark","欢迎下次光临")
        );
        wxMpTemplateMessage.setData(data);
        try {
            wxMpService.getTemplateMsgService().sendTemplateMsg(wxMpTemplateMessage);
        } catch (WxErrorException e) {
            log.error("【消息推送】发送失败"+e);
            e.printStackTrace();
        }
    }
}

 

 

 

你可能感兴趣的:(利用测试号实现微信配置模板消息的推送(SDK版))