java实现的小程序_Java实现 微信小程序 + 消息推送
實現(xiàn)效果:
下面要顯示五個字段
接下來,參照官方文檔,一步步實現(xiàn):
一、官方給出請求示例、返回示例
二、根據(jù)上面編寫實體類
(1)請求參數(shù)
@Data
public class SendTemplateReq {
/**
* 接收者(用戶)的 openid
*/
private String touser;
/**
* 所需下發(fā)的模板消息的id
*/
private String template_id;
/**
* 點擊模板卡片后的跳轉(zhuǎn)頁面,僅限本小程序內(nèi)的頁面。支持帶參數(shù),(示例index?foo=bar)。
* 該字段不填則模板無跳轉(zhuǎn)。
*/
private String page;
/**
* 表單提交場景下,為 submit 事件帶上的 formId;支付場景下,為本次支付的 prepay_id
*/
private String form_id;
/**
* 模板內(nèi)容
* 不填則下發(fā)空模板。具體格式請參考示例。
*/
private DoctorReplyMsgData data;
/**
* 模板需要放大的關(guān)鍵詞
* 不填則默認(rèn)無放大
*/
private String emphasis_keyword;
}
(2)請求參數(shù)中的data,如實現(xiàn)效果所示,這是在小程序顯示的五個字段.
(屬性名就要叫keyword1、2、3,否則推送的消息空白)
@Data
public class DoctorReplyMsgData {
private KeyNote keyword1;
private KeyNote keyword2;
private KeyNote keyword3;
private KeyNote keyword4;
private KeyNote keyword5;
}
(3)上面五個字段對應(yīng)的值(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 接口調(diào)用超過限額(目前默認(rèn)每個帳號日調(diào)用限額為100萬)
*/
private interrcode;
/**
* 錯誤信息
*/
privateString errmsg;
}
三、實現(xiàn)代碼
public voidsendTemplate() {
SendTemplateReq sendTemplateReq= newSendTemplateReq();//1、用戶的 openid
sendTemplateReq.setTouser("openid");//2、模板消息的id
sendTemplateReq.setTemplate_id("小程序啟用模板的模板id");//3、formid
sendTemplateReq.setForm_id("小程序傳給后臺的formid,七天有效");//4、點擊模板跳轉(zhuǎn)頁面
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、請求體轉(zhuǎn)為json
String reqStr=JsonUtil.ModelToGson(sendTemplateReq);//9、發(fā)送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:小程序設(shè)置模板時帶的
4、data:對象類型
5、token:調(diào)用接口獲取token
總結(jié)
以上是生活随笔為你收集整理的java实现的小程序_Java实现 微信小程序 + 消息推送的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中俄合作研发 航程超1.2万公里 CR9
- 下一篇: java多线程意义_Java多线程学习之