java实现的小程序_Java实现 微信小程序 + 消息推送
實(shí)現(xiàn)效果:
下面要顯示五個(gè)字段
接下來(lái),參照官方文檔,一步步實(shí)現(xiàn):
一、官方給出請(qǐng)求示例、返回示例
二、根據(jù)上面編寫(xiě)實(shí)體類(lèi)
(1)請(qǐng)求參數(shù)
@Data
public class SendTemplateReq {
/**
* 接收者(用戶(hù))的 openid
*/
private String touser;
/**
* 所需下發(fā)的模板消息的id
*/
private String template_id;
/**
* 點(diǎn)擊模板卡片后的跳轉(zhuǎn)頁(yè)面,僅限本小程序內(nèi)的頁(yè)面。支持帶參數(shù),(示例index?foo=bar)。
* 該字段不填則模板無(wú)跳轉(zhuǎn)。
*/
private String page;
/**
* 表單提交場(chǎng)景下,為 submit 事件帶上的 formId;支付場(chǎng)景下,為本次支付的 prepay_id
*/
private String form_id;
/**
* 模板內(nèi)容
* 不填則下發(fā)空模板。具體格式請(qǐng)參考示例。
*/
private DoctorReplyMsgData data;
/**
* 模板需要放大的關(guān)鍵詞
* 不填則默認(rèn)無(wú)放大
*/
private String emphasis_keyword;
}
(2)請(qǐng)求參數(shù)中的data,如實(shí)現(xiàn)效果所示,這是在小程序顯示的五個(gè)字段.
(屬性名就要叫keyword1、2、3,否則推送的消息空白)
@Data
public class DoctorReplyMsgData {
private KeyNote keyword1;
private KeyNote keyword2;
private KeyNote keyword3;
private KeyNote keyword4;
private KeyNote keyword5;
}
(3)上面五個(gè)字段對(duì)應(yīng)的值(data是對(duì)象,所以需要這樣)
@Data
public class KeyNote {
private String value;
}
(4)請(qǐng)求后,微信返回的消息體
@Data
public classSendTemplateResponse {
/**
* 錯(cuò)誤碼
* 0 ok
* 40037 template_id不正確
* 41028 form_id不正確,或者過(guò)期
* 41029 form_id已被使用
* 41030 page不正確
* 45009 接口調(diào)用超過(guò)限額(目前默認(rèn)每個(gè)帳號(hào)日調(diào)用限額為100萬(wàn))
*/
private interrcode;
/**
* 錯(cuò)誤信息
*/
privateString errmsg;
}
三、實(shí)現(xiàn)代碼
public voidsendTemplate() {
SendTemplateReq sendTemplateReq= newSendTemplateReq();//1、用戶(hù)的 openid
sendTemplateReq.setTouser("openid");//2、模板消息的id
sendTemplateReq.setTemplate_id("小程序啟用模板的模板id");//3、formid
sendTemplateReq.setForm_id("小程序傳給后臺(tái)的formid,七天有效");//4、點(diǎn)擊模板跳轉(zhuǎn)頁(yè)面
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);//如上...總共五個(gè)字段//6、獲取token
String token = "token,倆小時(shí)有效";//7、模板url拼接上token,最上面的請(qǐng)求的url那樣
String url = "TemplateUrl" + "token";//8、請(qǐng)求體轉(zhuǎn)為json
String reqStr=JsonUtil.ModelToGson(sendTemplateReq);//9、發(fā)送httpclient請(qǐng)求
String resultStr =httpRequestUtil.doPost(sb.toString(), reqStr);//10、接收返回的消息體:是否成功,成功返回0
SendTemplateResponse sendTemplateResponse = (SendTemplateResponse)JsonUtil.GsonToModel(resultStr,SendTemplateResponse.class);if(sendTemplateResponse.getErrcode() == 0){//"推送成功!"
}
}
1、openid:通過(guò)jsCode獲取的
2、formid:小程序端傳過(guò)來(lái)的
3、Template_id:小程序設(shè)置模板時(shí)帶的
4、data:對(duì)象類(lèi)型
5、token:調(diào)用接口獲取token
總結(jié)
以上是生活随笔為你收集整理的java实现的小程序_Java实现 微信小程序 + 消息推送的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中俄合作研发 航程超1.2万公里 CR9
- 下一篇: java美元兑换,(Java实现) 美元