微信公眾號開發-----微信模板訊息介面-----傳送模板訊息
阿新 • • 發佈:2019-02-03
傳送模板訊息
介面呼叫請求說明http請求方式: POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKENPOST資料說明
POST資料示例如下:
{ "touser":"OPENID", "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", "url":"http://weixin.qq.com/download", "miniprogram":{ "appid":"xiaochengxuappid12345", "pagepath":"index?foo=bar" }, "data":{ "first": { "value":"恭喜你購買成功!", "color":"#173177" }, "keynote1":{ "value":"巧克力", "color":"#173177" }, "keynote2": { "value":"39.8元", "color":"#173177" }, "keynote3": { "value":"2014年9月22日", "color":"#173177" }, "remark":{ "value":"歡迎再次購買!", "color":"#173177" } } }
引數說明
注:url和miniprogram都是非必填欄位,若都不傳則模板無跳轉;若都傳,會優先跳轉至小程式。開發者可根據實際需要選擇其中一種跳轉方式即可。當用戶的微信客戶端版本不支援跳小程式時,將會跳轉至url。
返回碼說明
在呼叫模板訊息介面後,會返回JSON資料包。正常時的返回JSON資料包示例:
{
"errcode":0,
"errmsg":"ok",
"msgid":200228332
}
Demo案例: 1.在微信公眾號(這裡是測試號,隨便找的模板)中新增模板測試介面
2.建一個模板訊息
TemplateMessageUtil.java
注:同使用httpClient請求服務//傳送模板訊息 public static String sendTemplateMessage(String touser,String template_id,String keyword1,String keyword2,String keyword3){ AccessToken accessToken=WeixinUtil.getAccessToken(ParamesAPI.appId,ParamesAPI.secret); String sendUrl="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+accessToken.getToken(); //post請求資料 String url="http://weixin.qq.com/download"; //data JSONObject dataJson=new JSONObject(); //first JSONObject fstJson=new JSONObject(); fstJson.put("value","執行人員操作提醒:"); //keyword1 JSONObject k1Json=new JSONObject(); k1Json.put("value",keyword1); //keyword2 JSONObject k2Json=new JSONObject(); k2Json.put("value",keyword2); //keyword3 JSONObject k3Json=new JSONObject(); k3Json.put("value",keyword3); //remark JSONObject rmkJson=new JSONObject(); rmkJson.put("value","物料執行資訊已送達,請儘快完成任務哦!"); dataJson.put("first",fstJson); dataJson.put("keyword1",k1Json); dataJson.put("keyword2",k2Json); dataJson.put("keyword3",k3Json); dataJson.put("remark",rmkJson); JSONObject json=new JSONObject(); json.put("touser",touser); json.put("template_id",template_id); json.put("data",dataJson); JSONObject jsonObject = HttpClientUtil.getInstance().httpPostRequest(sendUrl, json.toString()); System.out.println("傳送模板訊息:" + jsonObject); String msg="errcode:"+jsonObject.getString("errcode")+"-----"+"errmsg:"+jsonObject.getString("errmsg"); return msg; }
3.PC中執行事件時呼叫第2部的介面,並給出需要的引數
//給執行人員傳送模板訊息
String touser="";//接受者openid
String template_id="FMn8Ph1R-Ie04VXs-ZeaH88z32XBMMqYzoitmzvay70";//模板id
String keyword1=orderDetails.getBelongOrderBase().getCustomerName();//客戶姓名
String keyword2=orderDetails.getBelongOrderBase().getCustomerAddress();//客戶地址
String keyword3=orderDetails.getMaterialName();//品名
if (StringUtils.isNotBlank(belongUserInfosPer)) {
String[] userInfoArray = belongUserInfosPer.split(",");
for (int i = 0; i < userInfoArray.length; i++) {
String item = userInfoArray[i];
Long itemLong = StringConverters.ToLong(item);
if (itemLong != null) {
UserInfo userInfo=userInfoBiz.findModel(itemLong);
touser=userInfo.getOpenId();
String msg=TemplateMessageUtil.sendTemplateMessage(touser,template_id,keyword1,keyword2,keyword3);
logger.info(msg);
}
}
} else {
return "使用者資訊不存在,修改失敗";
}