5行代码实现微信模版消息推送,springboot实现微信推送,java微信推送

总结

如果你选择了IT行业并坚定的走下去,这个方向肯定是没有一丝问题的,这是个高薪行业,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了

《Java中高级核心知识全面解析》

小米商场项目实战,别再担心面试没有实战项目:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

/**

  • Created by qcl on 2019-03-28

  • 微信:2501902696

  • desc: 模版消息推送模拟

*/

@RestController

public class PushController {

/*

 * 微信测试账号推送

 * */

@GetMapping("/push")

public void push() {

    //1,配置

    WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage();

    wxStorage.setAppId("wx77bb69292323a000");

    wxStorage.setSecret("29bd368145806115ad6820133e62806e");

    WxMpService wxMpService = new WxMpServiceImpl();

    wxMpService.setWxMpConfigStorage(wxStorage);



    //2,推送消息

    WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()

            .toUser("o5kho6DgC7SDry8zCmXuvHJGvrgI")//要推送的用户openid

            .templateId("Tpln-Eue2obJ0B-8JNkgkiRJaDMPgVeIgGxna982xrg")//模版id

            .url("https://30paotui.com/")//点击模版消息要访问的网址

            .build();

    //3,如果是正式版发送模版消息,这里需要配置你的信息

    //        templateMessage.addData(new WxMpTemplateData("name", "value", "#FF00FF"));

    //                templateMessage.addData(new WxMpTemplateData(name2, value2, color2));

    try {

        wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);

    } catch (Exception e) {

        System.out.println("推送失败:" + e.getMessage());

        e.printStackTrace();

    }



}

}




[]( )二,接下来就来重点讲讲我们如何注册微信测试账号,并实现推送功能。

---------------------------------------------------------------------------------------------



> 正常我们企业开发,实现微信模版消息推送,必须要有微信公众号,备案的网址,并且最麻烦的一点是要获取到用户的openid,作为个人,这些条件基本上都不具备。所以今天就来带大家注册微信开发测试账号,来轻松实现微信模版消息推送。



*   1,微信扫码登录下面网址  

    [https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login]( )  

    扫码登录成功后,就会给我们生成微信公号的appid和appsecret  

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190630113828283.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70)

    

*   2,微信扫码关注 测试号二维码,微信给我们返回我们的openid,这个openid在推送时特别重要。因为你推送肯定要知道推送给 谁啊,就比如你打电话,肯定要知道用户的电话号码吧。这个openid就是我们要推送给那个用户的唯一标示。  

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190630113844983.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70)

    

*   3,拿到这些以后,我们就可以去实现微信推送了。推送的代码就只有下面这么点。

    



     //1,配置

    WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage();

    wxStorage.setAppId("wx77bb69292323a000");//appid

    wxStorage.setSecret("29bd368145806115ad6820133e62806e");//appsecret

    WxMpService wxMpService = new WxMpServiceImpl();

    wxMpService.setWxMpConfigStorage(wxStorage);



    //2,推送消息

    WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()

            .toUser("o5kho6DgC7SDry8zCmXuvHJGvrgI")//要推送的用户openid

            .templateId("Tpln-Eue2obJ0B-8JNkgkiRJaDMPgVeIgGxna982xrg")//模版id

            .url("https://30paotui.com/")//点击模版消息要访问的网址

            .build();

    //3,如果是正式版发送模版消息,这里需要配置你的信息

    //        templateMessage.addData(new WxMpTemplateData("name", "value", "#FF00FF"));

    //                templateMessage.addData(new WxMpTemplateData(name2, value2, color2));



    //发起推送

    try {

        String msg = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);

        System.out.println("推送成功:" + msg);

    } catch (Exception e) {

        System.out.println("推送失败:" + e.getMessage());

        e.printStackTrace();

    }



[]( )三,推送测试

-------------------------------------------------------------------



代码都完成后,我们就可以来测试推送了。测试我们这个分两种



*   1,java的单元测试

*   2,运行springboot,通过get请求来触发推送



#### []( )单元测试



package com.qiushi.wxpush;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

import static org.junit.Assert.*;

/**

  • Created by qcl on 2019-03-28

  • 微信:2501902696

  • desc:测试用例

*/

@RunWith(SpringRunner.class)

@SpringBootTest

public class PushControllerTest {

@Autowired

PushController pushController;



@Test

public void push() {

    pushController.push();

}

}




单元测试其实很简单,我们只需要点击箭头所指的绿色按钮,即可运行单元测试,运行通过后就可以看到发送消息成功了。  

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190630113907274.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70)  

log里可以看出我们是10:46发起推送的,看下图我们微信接受到的推送消息也是10:46  

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190630113931821.png)



### []( )运行springboot,通过get请求来触发推送



这个就更简单了,我们启动springboot项目,然后调用get请求:  

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190630113947164.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70)  

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190630114003544.png)  

可以看到我们也推送成功了。



到这里我们就轻松通过简单几行代码实现了微信模版消息推送的功能了。



> 我们在企业生产环境时,实现这个功能,步骤和这里是一样的。代码也和这里差不多,只不过多了一个获取用户openid的步骤,这个步骤微信要求比较严格,必须要有备案的网址作为回调,今天就不给大家深入讲解了,后期我会专门写一篇获取微信用户openid的文章出来。



如果你有微信或者java开发方面的问题,可以加我微信交流学习:**2501902696**。也可以加我微信获取完整源码。



视频讲解:[https://edu.csdn.net/course/detail/23750]( )



 



  




### 最后

毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节

### 美团面试经验
![美团面试](https://img-blog.csdnimg.cn/img_convert/17028f7772840a01b5d571c71d0ca831.webp?x-oss-process=image/format,png)
字节面试经验
![字节面试](https://img-blog.csdnimg.cn/img_convert/36de85676a60cfc794698c06abdbfb8b.webp?x-oss-process=image/format,png)
菜鸟面试经验
![菜鸟面试](https://img-blog.csdnimg.cn/img_convert/04a81397bfb9f8c6b8b2eb959cece072.webp?x-oss-process=image/format,png)
蚂蚁金服面试经验
![蚂蚁金服](https://img-blog.csdnimg.cn/img_convert/c555ee97be0210ce6f9c2f1d7ed8af28.webp?x-oss-process=image/format,png)
唯品会面试经验
![唯品会](https://img-blog.csdnimg.cn/img_convert/85e65ce4e0f0e1c2d4edf25588150861.webp?x-oss-process=image/format,png)

>因篇幅有限,图文无法详细发出


> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618154847)**

菜鸟面试经验
[外链图片转存中...(img-TAHahU4h-1715797540520)]
蚂蚁金服面试经验
[外链图片转存中...(img-pdAInf8m-1715797540521)]
唯品会面试经验
[外链图片转存中...(img-acIFq2sN-1715797540521)]

>因篇幅有限,图文无法详细发出


> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618154847)**

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信模板消息推送是一项非常实用的功能,可以在微信公众号中向用户推送各种信息。如果你想使用Java代码实现微信模板消息推送,下面是一个例子: 首先,你需要获取微信公众号的access_token,这可以通过向微信服务器发送HTTP请求来实现。需要注意的是,access_token的有效时间为两个小时,过期后需要重新获取。 一旦你获得了access_token,你就可以使用下面的Java代码向用户推送模板消息: ``` public static void sendTemplateMessage(String accessToken, String openId, String templateId, String url, String jsonString) { String jsonMsg = "{" + "\"touser\":\"" + openId + "\"," + "\"template_id\":\"" + templateId + "\"," + "\"url\":\"" + url + "\"," + "\"data\":" + jsonString + "}"; String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken; String result = doPost(url, jsonMsg); System.out.println(result); } private static String doPost(String url, String data) { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url); StringEntity entity = new StringEntity(data, ContentType.APPLICATION_JSON); httpPost.setEntity(entity); try { CloseableHttpResponse response = httpClient.execute(httpPost); String result = EntityUtils.toString(response.getEntity(), "UTF-8"); return result; } catch (Exception e) { e.printStackTrace(); return ""; } } ``` 这段代码首先构造了一个JSON格式的字符串,通过HTTP POST请求将其发送微信服务器。其中,accessToken是你获得的access_token,openId是需要接收消息的用户的OpenId,templateId是使用的模板的ID,url是用户点击消息时跳转的链接,jsonString是一个包含模板消息内容的JSON字符串。 总之,以上就是一个简单的微信模板消息推送Java源码,你可以参考它来实现类似的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值