微信公众号推送课表+封装

首先导包:

 <!--微信模版消息推送三方sdk-->
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-mp</artifactId>
            <version>3.3.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>

封装一个Vo对象

@Data
@AllArgsConstructor
@NoArgsConstructor
public class WeChatPushVo {

    private String openId;

    private String courseId;


    private String first;

    private String keyword1;

    private String keyword2;

    private String remark;

}

封装一个配置类:

@ConfigurationProperties(prefix = "wechat.test")
@Component
public class WeChatPushConfig {

    // 可在类中设置默认值,具体可以通过application.properties修改内容

    private String first = "ppone在测试捏";
    private String keyword1 = "课程名称\n";
    private String keyword2 = "上课地点\n";
    private String remark = "上课时间\n";

    private String appId = "appid";
    private String secret = "secret";
    private String templateId = "templateId ";
}
wechat.test.first=ppone测试代码
wechat.test.keyword1=pro课程名称\n
wechat.test.keyword2=pro上课地点\n
wechat.test.remark=pro上课时间\n
wechat.test.appId=appId
wechat.test.secret=secret
wechat.test.templateId=templateId

封装一个Pusher类:

@Component
public class Pusher {


    private String appId;
    private String secret;
    private String first;
    private String keyword1;
    private String keyword2;
    private String remark;
    private String templateId;

    public Pusher(String appId, String secret,String templateId) {
        this.appId = appId;
        this.secret = secret;
        this.templateId = templateId;
    }

    public Pusher() {
    }


    public void push(WeChatPushVo weChatPushVo, WeChatPushConfig config){

        //1,配置
        WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage();

        wxStorage.setAppId(appId);
        wxStorage.setSecret(secret);
        WxMpService wxMpService = new WxMpServiceImpl();
        wxMpService.setWxMpConfigStorage(wxStorage);
        //2,推送消息
        WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
                .toUser(weChatPushVo.getOpenId())
                .templateId(templateId)
                .build();
        //3,如果是正式版发送模版消息,这里需要配置你的信息


        templateMessage.addData(new WxMpTemplateData("first",config.getFirst()+weChatPushVo.getFirst(),"#00FFFF"));
        templateMessage.addData(new WxMpTemplateData("keyword1",config.getKeyword1()+weChatPushVo.getKeyword1(),"#00FFFF"));
        templateMessage.addData(new WxMpTemplateData("keyword2",config.getKeyword2()+weChatPushVo.getKeyword2(),"#00FFFF"));
        templateMessage.addData(new WxMpTemplateData("remark",config.getRemark()+weChatPushVo.getRemark(),"#001EFF"));


        try {
            System.out.println(templateMessage.toJson());
            System.out.println(wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage));
        } catch (Exception e) {
            System.out.println("推送失败:" + e.getMessage());
            e.printStackTrace();
        }
    }

  
    }

service层:

@Service
public class WeChatServiceImpl implements WeChatService {


    @Autowired
    private UserService userService;

    @Autowired
    private CourseService courseService;

    @Autowired
    private WeChatPushConfig weChatPushConfig;

    @Override
    public R push(WeChatPushVo weChatPushVo){
        Pusher pusher = new Pusher(weChatPushConfig.getAppId(),weChatPushConfig .getSecret(),weChatPushConfig.getTemplateId());

        User user = userService.getById(1);
        weChatPushVo.setOpenId(user.getOpenId());
        Course course = courseService.getById(111);

        weChatPushVo.setFirst("ppOneJava推送");
        weChatPushVo.setKeyword1(course.getName());
        weChatPushVo.setKeyword2(course.getClassroom());
        weChatPushVo.setRemark(course.getTime());

        try {
            pusher.push(weChatPushVo,weChatPushConfig);
            return R.ok();
        }catch(Exception e){
            System.out.println("推送失败");
            return R.error().message("推送失败");
        }

    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值