200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 微信公众号 - Java推送公众号模板消息给用户

微信公众号 - Java推送公众号模板消息给用户

时间:2018-11-03 00:00:40

相关推荐

微信公众号 - Java推送公众号模板消息给用户

不啰嗦,我们直接开始!

由于没有公众帐号,本文使用微信公众平台接口测试帐号进行调试。

一、申请测试帐号

1、使用微信扫码登录下面网址

微信公众平台 ()

2、找到appID和appsecret

登录成功后能看到appID和appsecret

3、找到openid

当前页面往下翻,能看到测试公众号的二维码,使用微信扫码关注后,能看到我们在这个测试号下的的openid

4、找到模板ID

在往下翻,在“模板消息接口”处,新增测试模板,然后能看新增的测试模板ID

模板内容可以自定义占位字段的key(小写)可以自定义,但是属性必须是DATA(必须大写,因为小写我试过不行)

以上的appID、appsecret、openid、模板ID记住位置就行,后面使用第三方sdk推送消息时会用到

二、引用第三方sdk,集成模板消息推送

我这儿是集成模板消息推送到已有的系统消息中,通过配置是否发送模板消息进行分发,具体实现各工程不一样,我这儿就不展示了。

1、pom引入第三方sdk

引入第三方sdk,我们就只需要封装好消息发送的核心代码,微信相关的token及其他信息的维护就交给sdk,我们不用关注(但是原理要知道)。

sdk的作者:GitHub,话说这个大佬看着眼熟,瞄了眼支付中心的底层,也用到了这个大佬的东西

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

2、核心代码(有注释)

import me.chanjar.weixin.mp.api.WxMpService;import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;import org.ponent;import java.util.Arrays;import java.util.List;@Componentpublic class WeChatMessageHelperTest {private static WxMpService wxMpService = new WxMpServiceImpl();/*** 发送微信模板消息* @param tempId 微信模板ID* @param tempDetailsUrl 点击详情跳转的地址* @param title 标题* @param content 内容* @param userIds 用户* @version V1.0* modify history*/public static void sendWechatTempMessage(String tempId, String tempDetailsUrl, String title, String content, String... userIds) throws Exception {// 这里我使用的WxMpDefaultConfigImpl,WxMpDefaultConfigImpl还有3个子类可使用,具体区别不详,空了再研究WxMpDefaultConfigImpl wxStorage = new WxMpDefaultConfigImpl();// 测试号的appIDwxStorage.setAppId("appID");// 测试号的appsecretwxStorage.setSecret("appsecret");wxMpService.setWxMpConfigStorage(wxStorage);for (String userId : userIds) {// TODO:根据用户id获取OpenId,测试时写死WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()// 要推送的用户openid.toUser("openid")// 消息详情跳转地址:/qq_34272760/article/details/12903// 若需要跳转小程序,url则设置为:http://mp.,然后设置相关的MiniProgram参数【跳转的小程序必须是公众号关联的小程序!!!】.url(tempDetailsUrl)// 微信模板ID.templateId(tempId).build();// data的字段及内容是自定义的,不必按我这儿的来,具体怎么和已有的系统消息结合,实现key和color可配置化需自行考虑List<WxMpTemplateData> data = Arrays.asList(new WxMpTemplateData("title", title),// WxMpTemplateData 可设置颜色new WxMpTemplateData("content", content, "#ff0000"));templateMessage.setData(data);/*// 跳转小程序相关配置【跳转的小程序必须是公众号关联的小程序!!!】WxMpTemplateMessage.MiniProgram miniProgram = new WxMpTemplateMessage.MiniProgram();// 小程序的appIdminiProgram.setAppid("wxac397222f82f2644");// 小程序的pagePath 注意,这里是支持传参的!!!miniProgram.setPagePath("pages/index/index?temp=1");// 需要跳转首页时,需要设置 usePath = true (默认是 false,只跳转非首页)miniProgram.setUsePath(true);templateMessage.setMiniProgram(miniProgram);*/try {// 发送模板消息wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);} catch (Exception e) {Logger.error("微信公众号模板消息推送失败,接收userId: " + userId, e);}}}}

3、触发消息推送,查看推送结果

4、点击消息详情

跳转小程序这里就没有测试了,因为没有公众号相关联的小程序

官方文档:发送模板消息

参考文章:

使用 weixin-java-mp(weixin-java-tools) 实现微信授权 spring boot微信模板消息推送发送模板消息微信公众号之模板消息跳转小程序公众号模板消息跳转小程序pagepath传参小程序获取不到?

不啰嗦,文章结束,期待三连!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。