900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 微信小程序推送消息java开发_Java实现 微信小程序 + 消息推送

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

时间:2023-09-25 09:14:44

相关推荐

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

实现效果:

下面要显示五个字段

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

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

二、根据上面编写实体类

(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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。