5行java代码实现微信小程序模版消息推送 (含springboot后台和小程序源码)

难道这样就够了吗?不,远远不够!

提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。

备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记

我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。

今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

image.png

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

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

1,需要在pom.xml引入一个三方类库(推送的三方类库)

在这里插入图片描述

pom.xml的完整代码如下


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>2.1.5.RELEASE</version>

        <relativePath/> <!-- lookup parent from repository -->

    </parent>

    <groupId>com.qcl</groupId>

    <artifactId>wxapppush</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <name>wxapppush</name>

    <description>Demo project for Spring Boot</description>

    <properties>

        <java.version>1.8</java.version>

    </properties>

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

        <!--微信小程序模版推送-->

        <dependency>

            <groupId>com.github.binarywang</groupId>

            <artifactId>weixin-java-miniapp</artifactId>

            <version>3.4.0</version>

        </dependency>

    </dependencies>

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

        </plugins>

    </build>

</project>



其实到这里我们java后台的推送功能,就已经实现了。我们只需要运行springboot项目,就可以实现推送了。

下面贴出完整的PushController.java类。里面注释很详细了。


package com.qcl.wxapppush;



import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;



import java.util.ArrayList;

import java.util.List;



import cn.binarywang.wx.miniapp.api.WxMaService;

import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;

import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;

import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;

import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;

import me.chanjar.weixin.common.error.WxErrorException;



/**

 * Created by qcl on 2019-05-20

 * 微信:2501902696

 * desc: 微信小程序模版推送实现

 */

@RestController

public class PushController {



    @GetMapping("/push")

    public String push(@RequestParam String openid, @RequestParam String formid) {

        //1,配置小程序信息

        WxMaInMemoryConfig wxConfig = new WxMaInMemoryConfig();

        wxConfig.setAppid("wx7c54942dfc87f4d8");//小程序appid

        wxConfig.setSecret("5873a729c365b65ab42bb5fc82d2ed49");//小程序AppSecret



        WxMaService wxMaService = new WxMaServiceImpl();

        wxMaService.setWxMaConfig(wxConfig);



        //2,设置模版信息(keyword1:类型,keyword2:内容)

        List<WxMaTemplateData> templateDataList = new ArrayList<>(2);

        WxMaTemplateData data1 = new WxMaTemplateData("keyword1", "获取老师微信");

        WxMaTemplateData data2 = new WxMaTemplateData("keyword2", "2501902696");

        templateDataList.add(data1);

        templateDataList.add(data2);



        //3,设置推送消息

        WxMaTemplateMessage templateMessage = WxMaTemplateMessage.builder()

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

                .formId(formid)//收集到的formid

                .templateId("eDZCu__qIz64Xx19dAoKg0Taf5AAoDmhUHprF6CAd4A")//推送的模版id(在小程序后台设置)

                .data(templateDataList)//模版信息

                .page("pages/index/index")//要跳转到小程序那个页面

                .build();

        //4,发起推送

        try {            wxMaService.getMsgService().sendTemplateMsg(templateMessage);

        } catch (WxErrorException e) {

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

            return e.getMessage();

        }

        return "推送成功";

    }

}



看代码我们可以知道,我们需要做一些配置,需要下面信息

1,小程序appid

2,小程序AppSecret(密匙)

3,小程序推送模版id

4,用户的openid

5,用户的formid(一个formid只能用一次)

下面就是小程序部分,来教大家如何获取上面所需的5个信息。

=========================================================================================

1,appid和AppSecret的获取(登录小程序管理后台)

在这里插入图片描述

2,推送模版id

在这里插入图片描述

3,用户openid的获取,可以看下面的这篇文章,也可以看源码,这里不做具体讲解

小程序开发如何获取用户openid

4,获取formid

在这里插入图片描述

看官方文档,可以知道我们的formid有效期是7天,并且一个form_id只能使用一次,所以我们小程序端所需要做的就是尽可能的多拿些formid,然后传个后台,让后台存到数据库中,这样7天有效期内,想怎么用就怎么用了。

一线互联网大厂Java核心面试题库

image

正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!

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

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

ing全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值