java实现的小程序_Java实现 微信小程序 + 消息推送

实现效果:

下面要显示五个字段

d42379c608e2e0f4f8d8c061aa7b190e.png

接下来,参照官方文档,一步步实现:

一、官方给出请求示例、返回示例

286ccac1bf62b10b0b1a5deed4c3b6c0.png

7e2c41d2b7e836cd885dbb1bfc9da369.png

二、根据上面编写实体类

(1)请求参数

@Data

public class SendTemplateReq {

/**

* 接收者(用户)的 openid

*/

private String touser;

/**

* 所需下发的模板消息的id

*/

private String template_id;

/**

* 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。

* 该字段不填则模板无跳转。

*/

private String page;

/**

* 表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id

*/

private String form_id;

/**

* 模板内容

* 不填则下发空模板。具体格式请参考示例。

*/

private DoctorReplyMsgData data;

/**

* 模板需要放大的关键词

* 不填则默认无放大

*/

private String emphasis_keyword;

}

(2)请求参数中的data,如实现效果所示,这是在小程序显示的五个字段.

(属性名就要叫keyword1、2、3,否则推送的消息空白)

@Data

public class DoctorReplyMsgData {

private KeyNote keyword1;

private KeyNote keyword2;

private KeyNote keyword3;

private KeyNote keyword4;

private KeyNote keyword5;

}

(3)上面五个字段对应的值(data是对象,所以需要这样)

@Data

public class KeyNote {

private String value;

}

(4)请求后,微信返回的消息体

@Data

public classSendTemplateResponse {

/**

* 错误码

* 0 ok

* 40037 template_id不正确

* 41028 form_id不正确,或者过期

* 41029 form_id已被使用

* 41030 page不正确

* 45009 接口调用超过限额(目前默认每个帐号日调用限额为100万)

*/

private interrcode;

/**

* 错误信息

*/

privateString errmsg;

}

三、实现代码

public voidsendTemplate() {

SendTemplateReq sendTemplateReq= newSendTemplateReq();//1、用户的 openid

sendTemplateReq.setTouser("openid");//2、模板消息的id

sendTemplateReq.setTemplate_id("小程序启用模板的模板id");//3、formid

sendTemplateReq.setForm_id("小程序传给后台的formid,七天有效");//4、点击模板跳转页面

sendTemplateReq.setPage("");//5、Data,按次序,只能叫keyword1、2、3

DoctorReplyMsgData replyData = newDoctorReplyMsgData();

KeyNote keyword1= newKeyNote();

keyword1.setValue("小程序显示的消息字段1");

replyData.setKeyword1(keyword1);

KeyNote keyword2= newKeyNote();

keyword2.setValue("小程序显示的消息字段2");

replyData.setKeyword2(keyword2);

sendTemplateReq.setData(replyData);//如上...总共五个字段//6、获取token

String token = "token,俩小时有效";//7、模板url拼接上token,最上面的请求的url那样

String url = "TemplateUrl" + "token";//8、请求体转为json

String reqStr=JsonUtil.ModelToGson(sendTemplateReq);//9、发送httpclient请求

String resultStr =httpRequestUtil.doPost(sb.toString(), reqStr);//10、接收返回的消息体:是否成功,成功返回0

SendTemplateResponse sendTemplateResponse = (SendTemplateResponse)JsonUtil.GsonToModel(resultStr,SendTemplateResponse.class);if(sendTemplateResponse.getErrcode() == 0){//"推送成功!"

}

}

1、openid:通过jsCode获取的

2、formid:小程序端传过来的

3、Template_id:小程序设置模板时带的

4、data:对象类型

5、token:调用接口获取token

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vb excel 整行删除_Excel中常用的批量处理都不掌握,那就真的Out了

针对一些有规律,能批量处理的数据,必须采用批量处理的方法,否则对于工作效率就会有很大的影响。今天我们来学习的内容是Excel中的6个批量处理技巧。一、Excel批量技巧:批量求和。目的:按照“季度”和“产品”两个维度计…

eclipse找不到dynamic_Eclipse Juno在Dynamic Web Project中没有JSP(但其他...

简短的问题是,在创建动态Web项目(1.6 jdk)时,我可以看到要创建的所有文件类型,但jsp没有选项.当我检查文件关联时添加到那里,没有可供选择的JSP编辑器.稍微长一点的版本是我只想编辑JSP文件,我安装了Juno EE版本,它说安装了Web工具平台,一切正常.然而,虽然一切正常,但文件关联中…

exe编辑器_【小功能】Unreal Editor中调用exe

后续文章更新移步→微信公众号“虚幻社区”(mantra-xhsq),您的支持是我创作的动力。在程序界混,哪能碰上不改需求的策划 --Mantra最近遇到了一个奇葩的需求,在Unreal Editor的Toolbar中添加一个快捷键,可以…

java bitset用途_BitSet的用法

1,BitSet类大小可动态改变, 取值为true或false的位集合。用于表示一组布尔标志。此类实现了一个按需增长的位向量。位 set 的每个组件都有一个 boolean 值。用非负的整数将 BitSet 的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或…

html select选择事件_按键精灵的Html系列命令实战讲解

金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想学习按键精灵的朋友可以添加金猪脚本粉丝交流群:554…

java多线程意义_Java多线程学习之多线程的概念及意义

Java的线程机制,则是由执行程序表示的单一进程创建的任务(拗口!),注意,是在单一进程里面创建多个任务,不同于操作系统分叉外部进程。由于所有的任务在同一个进程内,任务之间会相互干涉(例如操作同样的对象&…

java 验证码_java学习之web基础(6):使用Response的输出流在页面输出验证码

package 输出并且我们可以写一个简单的网页&#xff0c;来实现点击更新验证码<!DOCTYPE html>

java socket编程实现聊天程序_java Socket编程 聊天程序 服务器端和客户端

[java]代码库package com.gufengxiachen.sthreadchatapp;/*** author GUXIA*/import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;imp…

电商前台模板中文html5_跨境电商平台上产品如何上传?虾皮新版批量上传工具使用指南分享...

大家好&#xff0c;这里是天师跨境&#xff0c;今天来为电商新人们解答一下关于如何在跨境电商平台上上传产品的疑惑&#xff0c;顺便介绍一下虾皮跨境平台的新版批量上传工具是如何使用的。在跨境电商平台上开店的新手们在入驻成功后&#xff0c;一般最先面临的问题就是上传产…

移动端 关闭浏览器事件_前端开发中什么是移动端点透事件?

点透事件&#xff1a;是指两个元素其中一个元素具有默认的点击事件&#xff0c;当我们让不具有点击事件的元素隐藏起来&#xff0c;会触发另一个元素的点击事件&#xff0c;这种行为被称之为点透事件。如下图所示&#xff1a;当我们给div元素添加touchstart事件让div元素隐藏起…

java web 线程数_Java Web应用调优线程池

最简单的单线程我们先从基础开始。无论使用哪种应用服务器或者框架(如Tomcat、Jetty等)&#xff0c;他们都有类似的基础实现。Web服务的基础是套接字(socket)&#xff0c;套接字负责监听端口&#xff0c;等待TCP连接&#xff0c;并接受TCP连接。一旦TCP连接被接受&#xff0c;即…

清除浏览器缓存之后为什么还是显示旧的html页面_Web缓存控制策略详解

管理Web缓存的最常用和最有效的方法之一是通过Cache-Control HTTP标头&#xff0c;由于此标头适用于Web页面的缓存&#xff0c;这意味着我们页面上的所有内容都可以具有非常精细化的缓存策略。通过各种自定义策略&#xff0c;我们控制的策略就可以变得非常复杂和强大。Cache-Co…

js二维数组_Javascript数组

数组的概念&#xff1a;引用类型的对象。本质&#xff1a;内存中存储多个数据的空间&#xff0c;再取个名字。数据结构&#xff1a;数据结构不同&#xff0c;擅长的操作不同。数组特点&#xff1a;便于数据的查找与维护。数组的创建&#xff1a;方法1&#xff1a;var 数组名【元…

java jtextfield 事件_JAVA JTextField事件处理

初学JAVA&#xff0c;笔记&#xff1a;package windows;import javax.swing.*;import java.awt.*;import java.awt.event.*;class WindowFlow extends JFrame implements ActionListener{private static final long serialVersionUID 1L;JTextField text1,text2;WindowFlow(St…

js封装函数_JavaScript基础-如何封装函数来改变元素的位置

点击右上方红色按钮关注“小郑搞码事”&#xff0c;每天都能学到知识&#xff0c;搞懂一个问题&#xff01;大家好&#xff01;我是/小郑搞码事/的小郑今天给大家分享JavaScript的基础知识-改变元素的位置。没错&#xff0c;用JS实现过动画的同学都应该了解一点&#xff0c;简单…

python查找指定字符所在行号_python查找字符串中某个字符

本文收集整理关于python查找字符串中某个字符的相关议题&#xff0c;使用内容导航快速到达。内容导航&#xff1a;Q1&#xff1a;Python里统计一个字符串中另一个字符串的个数答案为3(用正则)&#xff1a;1234>>>importre>>>sabababab>>>len(re.fin…

java jai create 方法_使用JAI扩展Java Image的功能

Java Image功能一直都在增强&#xff0c;但是向磁盘写一个图像文件或者返回一个PNG或JPEG依然比较难实现。但是我们可以使用Java Advanced Imaging(JAI)API来解决这个问题。JAI可以从SUN的Java站点下载&#xff0c;它包含在JDK 1.4的javax.imageio包中。要安装JAI&#xff0c;你…

python实现rm_python winrm模块使用

使用session方法###import winrmswinrm.Session(http://10.10.60.14:5985/wsman,auth(administrator,password))rs.run_ps(dir)rs.run_cmd(cd /d d: & test.bat)print r.std_outprint r.std_err使用Protocol方法###import winrmconn winrm.Protocol(endpointhttp://10.10…

java程序设计与实践教程 王薇 doc_Java程序设计与实践教程 王薇主编 答案

Java程序设计与实践教程 王薇 主编 董迎红 副主编 课后习题 答案第1章 JAVA简介一、判断题1.√ 2.√ 3. 4. 5. 6.√ 7.√ 8.√ 9. 10.二、填空题1.Application Applet 2. 类(字节码文件、目标文件) .class3.对象 4. 主 5. J2SE J2EE J2ME三、选择题1.B 2. D 3.B 4.B 5. A四、简…

树莓派python开发工具哪个好_Thonny——树莓派上Python的最新IDE

Thonny是最新的Raspbian系统中直接自带的Python IDE&#xff0c;支持Python3.6&#xff0c;更新到最新的Raspbian之后无需安装其他&#xff0c;就能打开使用。在Menu>Programming中就能找到这个IDE打开之后可以看到主要是两个区域&#xff0c;包括一个代码编辑区和一个shell…