微信源代码在哪里看(微信小程序代码大全)

我们在做小程序开发时,消息推送是不可避免的。今天就来教大家如何实现小程序消息推送的后台和前台开发。源码会在文章末尾贴出来。其实我之前有写过一篇:《springboot实现微信消息推送,java实现小程序推送,含小程序端实现代码》但是有同学反应这篇文

我们在做小程序开发时,消息推送是不可避免的。今天就来教大家如何实现小程序消息推送的后台和前台开发。源码会在文章末尾贴出来。

其实我之前有写过一篇:《springboot实现微信消息推送,java实现小程序推送,含小程序端实现代码》 但是有同学反应这篇文章里的代码太繁琐,接入也比较麻烦。今天就来给大家写个精简版的,基本上只需要几行代码,就能实现小程序模版消息推送功能。

老规矩先看效果图

微信源代码在哪里看(微信小程序代码大全)

这是我们最终推送给用户的模版消息。这是用户手机微信上显示的推送消息截图。

本节知识点

1,java开发推送后台

2,springboot实现推送功能

3,小程序获取用户openid

4,小程序获取fromid用来推送

先来看后台推送功能的实现

只有下面一个简单的PushController类,就可以实现小程序消息的推送

微信源代码在哪里看(微信小程序代码大全)

再来看下PushController类,你没看错,实现小程序消息推送,就需要下面这几行代码就可以实现了。

微信源代码在哪里看(微信小程序代码大全)

由于本推送代码是用springboot来实现的,下面就来简单的讲下。我我们需要注意的几点内容。

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天有效期内,想怎么用就怎么用了。所以接下来要讲的就是小程序开发怎么尽可能多的拿到formid了

微信源代码在哪里看(微信小程序代码大全)

看下官方提供的,只有在表单提交时把report-submit设为true时才能拿到formid,比如这样

<form report-submit=\’true\’ >
<button form-type=\’submit\’>获取formid</button>
</form>

所以我们就要在这里下功夫了,既然只能在form组件获取,我们能不能把我们小程序里用到最多的地方用form来伪装呢。

下面简单写个获取formid和openid的完整示例,方便大家学习

效果图

微信源代码在哪里看(微信小程序代码大全)

我们要做的就是点击获取formid按钮,可以获取到用户的formid和openid,正常我们开发时,是需要把openid和formid传给后台的,这里简单起见,我们直接用获取到的formid和openid实现推送功能

下面来看小程序端的实现代码

1,index.wxml

微信源代码在哪里看(微信小程序代码大全)

2,index.js

微信源代码在哪里看(微信小程序代码大全)

到这里我们小程序端的代码也实现了,接下来测试下推送。

formid: 6ee9ce80c1ed4a2f887fccddf87686eb
openid o3DoL0Uusu1URBJK0NJ4jD1LrRe0

微信源代码在哪里看(微信小程序代码大全)

可以看到我们用了上面获取到的openid和formid做了一次推送,显示推送成功

微信源代码在哪里看(微信小程序代码大全)

微信源代码在哪里看(微信小程序代码大全)

到这里我们小程序消息推送的后台和小程序端都讲完了。

这里有两点需要大家注意

1,推送的openid和formid必须对应。

2,一个formid只能用一次,多次使用会报一下错误。

{\”errcode\”:41029,\”errmsg\”:\”form id used count reach limit hint: [ssun8a09984113]\”}

编程小石头,码农一枚,非著名全栈开发人员。分享自己的一些经验,学习心得,希望后来人少走弯路,少填坑。

这里就不单独贴出源码下载链接了,大家感兴趣的话,可以私信我,或者在底部留言,我会把源码下载链接贴在留言区。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/20132.html

(0)
新劵
上一篇 2021-09-02
下一篇 2021-09-02

相关推荐

  • 给老师送礼的最佳地点(怎样成功送老师购物卡)

    新的学期来临,马上教师节也要来了,每年的教师节都是很多家长的主战场,有的家长甚至提前半个月就开始思考准备什么礼物又特别又不那么贵重,那么给老师送礼的最佳地点是哪里呢?怎样成功送老师购物卡?怎么塞钱给老师的技巧?下面就跟久久派小编来详细了解一下吧!给老师送礼的最

    2021-09-06
    0
  • 安卓刷机方法步骤(手机安卓一键刷机软件推荐)

    从安卓手机诞生以来,刷机就一直是一个热门的话题。但是大家可能有这样一个感觉:现在的手机刷机,似乎越来越难了。还在尝试给自己刷机的人也越来越少了。为什么刷机会越来越难?现在的Android用户,是不是都

    2022-01-11 科技
    0
  • 笔记本电脑关机后电池电量还在减少(笔记本电脑关机后耗电)

    对于很多经常出差,开会,讲课或很多学生去教室用笔记本电脑上课的朋友很多时候没有直流电源,需要使用笔记本电池去工作,那大家有没有遇到这种情况,就是电脑明明已经充好电关机,可第二天打开电脑以后电脑的电量还是减少很多,而且电池是没有问题的,今天

    2021-12-11 科技
    0
  • 什么是能量(能量是什么)

    什么是能量?能量是什么,爱惜日带你了解相关信息。力是从肌肉的紧张、空气流动形成风等一系列的现象,“不完全归纳概括”出来的一个“自然哲学基本范畴”。有了“力”,还需要“能量”概念有什么用吗?到今天为止,对于“能量”(能)概念没有精确的定义,有时候我在想:是受制于人类思维能力的局限性呢,还是宇宙自然就是故意让人类永远也无法彻底看穿它呢?无论是在牛顿的经典力学、爱因

    2021-11-19 科技
    0
  • 公司授权委托书范文(公司授权书是什么意思)

    授权一、关于授权1、授权是管理者把由他全权负责的一项或者多项任务委派给下属员工,使下属拥有相当的自主权和行动权,是现代企业的一种管理方法。2、授权的误区:全程参与、弃权、授责、代理职务、分工、助理。3、授权的好处:管理者、

    2021-12-12
    0
  • 恒大汽车连续暴跌市值蒸发6千亿(恒大集团怎么了)

    近段时间,恒大传了多番负面消息,不仅公司运营出现重大问题,其推出的理财产品无法兑付近日也引发大规模舆论,但这些还只是恒大面临危机的冰山一角。9月13日,中国恒大发布公告称,预期9月销售持续大幅下降,导致本集团销售回款持续恶化,进一步对现金流及流动性造

    2021-09-17
    0

发表回复

登录后才能评论