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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值