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批量技巧:批量求和。目的:按照“季度”和“产品”两个维度计…

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

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

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

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

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元素隐藏起…

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

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

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;简单…

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四、简…

maya藤蔓插件_Maya特效制作之植物生长动画制作教程(二)之多条藤蔓动画制作...

四、制作多条蔓藤植物下面我们要让很多植物在这个“崖壁”上生长出来&#xff0c;也就是要重复很多次前面的工作&#xff0c;当然可以这样一步一步地做&#xff0c;在“崖壁”面片上手动画很多的线&#xff0c;但下面尝试一种新的方法来制作&#xff0c;让粒子在“崖壁”面片Pl…

mysql数据库导入导出_MySQL数据库导入导出详解

MySQL数据库的导入&#xff0c;有两种方法&#xff1a;1) 先导出数据库SQL脚本&#xff0c;再导入&#xff1b;2) 直接拷贝数据库目录和文件。在不同操作系统或MySQL版本情况1. 概述MySQL数据库的导入&#xff0c;有两种方法&#xff1a;1) 先导出数据库SQL脚本&#xff0c;再导…

代码统计工具有哪几种_跟我学“Linux”小程序Web版开发(四):引入统计及Crash收集...

在完成了产品的基础开发以后&#xff0c;接下来需要进行一些周边的工作&#xff0c;这些周边工具将会帮助下一步优化产品。在完成了产品的基础开发以后&#xff0c;接下来需要进行一些周边的工作&#xff0c;这些周边工具将会帮助下一步优化产品。为什么要加应用统计和 Crash 收…

错误:不能继续进行下一步操作 openfire 设置._如何为MacBook或Mac电脑恢复出厂设置...

mac电脑经过长时间的使用后会变得卡顿&#xff0c;或者因为部分操作方式改变以至于给我们在使用过程中造成障碍&#xff0c;此时我们可以进行恢复出厂设置&#xff0c;以此来解决部分问题。那么该如何为MacBook或Mac电脑恢复出厂设置呢&#xff1f;下面跟随小编来一起学习一下吧…

mac显示网速_Mac网络流量监控工具——NetWorker pro

NetWorker pro for Mac是Mac系统上一款轻量级的网速实时监测软件&#xff0c;可以让用户在菜单栏上显示当前的网络上传下载速度&#xff0c;可以在速度和流量两种模式之间切换&#xff0c;也可以选择不同的网络模式来进行监测。此外&#xff0c;networker mac还提供有关当前活动…

matlab gui学习手记_MATLAB论坛不可错过的30例GUI源代码

​过去的两年中&#xff0c;我经常会在微信公众号和知乎上分享&#xff0c;平时如何通过MATLAB制作GUI&#xff0c;来让自己的工作和生活更加便捷与高效。在分享的同时&#xff0c;有不少朋友会给我留言提问关于MATLAB GUI的问题。而其中的许多问题&#xff0c;其实都是能够在M…

线性回归csv数据集_用mxnet的gluon线性回归训练只有两个特征的数据集

前言自从上次试着用最基础的线性回归训练一个有80个特征的数据集&#xff0c;梯度爆炸之后&#xff0c;今天拿一个简单到不能再简单的数据集试试能不能成功收敛。途中我们又会遇到什么问题&#xff1f;数据集来自吴恩达机器学习课程第二周的课后练习。原本是txt文件&#xff0c…

java中include标签的用法_原 ng-include用法分析以及多标签页面的简单实现方式

在平时的项目开发中&#xff0c;应该会经常遇到上图所示的需求&#xff0c;就是在一个页面中有多个标签&#xff0c;被选中的标签颜色会高亮显示&#xff0c;切换不同标签显示相应的不同内容。如果内容代码过多则写在同一个html文件就会显得特别乱&#xff0c;所以这里我们最好…

禅道项目管理_禅道 11.6.1 版本发布,完善细节,修复 Bug

禅道项目管理软件集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体&#xff0c;是一款功能完备的项目管理软件&#xff0c;完美地覆盖了项目管理的核心流程。禅道官网&#xff1a;www.zentao.net。大家好&#xff0c;禅道项目管理软件11.6.1发布&#xff0…