微信推送模板資訊介面(乾貨-程式碼)
阿新 • • 發佈:2018-12-29
這裡僅針對推送模板資訊進行程式碼整理~~~
本文分為以下三個部分:
一、申請模板訊息許可權
二、開發模板訊息SDK
三、JAVA程式碼實現傳送模板訊息
一、申請模板訊息許可權
模板訊息的申請需微信公眾賬號已經認證通過。
在微信公眾平臺的後臺,依次進入“功能->新增功能外掛->模板訊息“,按照下圖的紅色框步驟,填寫相關資訊,即可申請,微信官方有稽核,靜靜等待即可。
二、開發模板訊息SDK
三、JAVA程式碼實現傳送模板訊息
1、新建傳送資訊需要的實體資訊
/**
* Description:模板資訊Bean
* @author
* @version 1.0
* <pre>
* Modification History:
* Date Author Version Description
------------------------------------------------------------------
* 2017年9月21日 1.0 1.0 Version
* </pre>
*/
public class WechatTemplate {
private String touser ;
private String template_id;
private String url;
private String topcolor ;
private Map<String, TemplateData> data;
//getter setter 省略
}
/**
* Description:模板資訊的每個屬性資訊
* @author
* @version 1.0
* <pre>
* Modification History:
* Date Author Version Description
------------------------------------------------------------------
* 2017年9月21日 1.0 1.0 Version
* </pre>
*/
public class TemplateData {
private String value ;
private String color;
}
2、呼叫微信傳送模板資訊的介面
/**
* Description: 傳送微信模板資訊
* @param
* @return void
* @throws Exception
* @throws
* @Author
* Create Date: 2017年9月21日 下午3:50:38
*/
@SuppressWarnings("static-access")
public void sendTemplateMessage(WechatTemplate wechatTemplate){
try {
String access_token = this.getAccessToken();
String url=this.SEND_MESSAGE_URL+access_token;
String para=JSON.toJSONString(wechatTemplate);
String resultStr=HttpClinetUtil.post(para, url);
logger.info("返回結果:{}",resultStr);
} catch (Exception e) {
e.printStackTrace();
}
}
針對上面的方法有幾點需要說明以及程式碼補充:
(1)、請求的介面url:這個可以配置檔案中,此處僅僅為了方便,直接寫成靜態常量了。
SEND_MESSAGE_URL=”https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=”;
此處的access_token是程式儲存在redis快取中的資料,不再贅述。開發兄弟們按照各自專案已有方式獲取即可。
(3)、HttpClinetUtil.post(para, url)方法;
/**
* 傳送模板資訊呼叫的請求方法
* Description:
* @param
* @return String
* @throws
* @Author xuhongwei
* Create Date: 2017年6月29日 下午2:30:13
*/
public static String sendWeCharMsg(String json, String url) {
HttpPost post = new HttpPost(url);
post.setHeader("Content-Type", "application/json");
post.addHeader("Authorization", "Basic YWRtaW46");
String result = "";
try {
StringEntity s = new StringEntity(json.toString(), "utf-8");
s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(s);
// 傳送請求
HttpResponse httpResponse = HttpClients.createDefault().execute(post);
// 獲取響應輸入流
InputStream inStream = httpResponse.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, "utf-8"));
StringBuilder strber = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
strber.append(line + "\n");
inStream.close();
result = strber.toString();
System.out.println(result);
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
logger.info("請求伺服器成功,做相應處理");
} else {
logger.info("請求服務端失敗");
}
} catch (Exception e) {
System.out.println("請求異常");
throw new RuntimeException(e);
}
return result;
}
以上就是微信訊息傳送的java程式碼,整理完畢。