步驟 :
1: 去微信公衆号申請 模版消息功能 。
2:進入模版消息 ,從模闆庫中添加一個模版
3:點選詳情檢視格式
基本準備工作已經就緒 ,接下來就是開發過程
// 開發者ID(AppID)
String appid = "XXXXXXXXX";
// 開發者密碼
String app_secret = "XXXXXXXXXXXX";
// 擷取access_token 的url
String access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
+ appid + "&secret=" + app_secret;
String access_token = null;
JSONObject jsonObject = null;
InputStream is = new URL(access_token_url).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
String jsonText = sb.toString();
jsonObject = JSONObject.fromObject(jsonText);
} finally {
is.close();
}
if (null != jsonObject) {
access_token = jsonObject.getString("access_token");
// 發送模版消息資料的url
String url = "https://api.weixin.qq.com/cgi-bin/message/template/send? access_token=" + access_token;
// 請求包為一個json:(這裡是用了類轉化json的方法 建立的json 也可以指直接拼接字元串)
// String body = "{\"touser\":
// \"XXXXX\",\"template_id\":
// \"XXXXX\",\"url\":
// \"http://www.anquan100.com\",\"data\":
// {\"keyword1\":{\"value\":\"GuestChan\",\"color\":\"#173177\"},\"keyword3\":{\"value\":\"400\",\"color\":\"#173177\"}}}";
TemplateMessage t = new TemplateMessage();
TemplateMessageData td = new TemplateMessageData();
td.setFirst(new TemplateMessageValue("親耐滴芮碧特", "#173177"));
td.setRemark(new TemplateMessageValue("點選“詳情”确認本次繳費資訊", "#173177"));
td.setKeyword1(new TemplateMessageValue("遠端教育收費", "#173177"));
td.setKeyword2(new TemplateMessageValue("888.88", "#173177"));
td.setKeyword3(new TemplateMessageValue("666.66", "#173177"));
td.setKeyword4(new TemplateMessageValue("111.11", "#173177"));
td.setKeyword5(new TemplateMessageValue("111.11", "#173177"));
t.setTemplate_id("XXXXXXX");// 模版id
t.setTouser("XXXXXX");// 使用者的openid
t.setUrl("http://www.anquan100.com"); // 使用者點選詳情打開的位址
t.setData(td);
JSONObject json = JSONObject.fromObject(t);
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
String result = "";
try {
// 通過址預設配置建立一個httpClient執行個體
httpClient = HttpClients.createDefault();
// 建立httpGet遠端連接配接執行個體
HttpPost httpGet = new HttpPost(url);
// 設定請求頭資訊
httpGet.setHeader("Content-Type", "application/json");
httpGet.setEntity(new StringEntity(json.toString(), "utf-8"));
// 設定配置請求參數
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 連接配接主機服務逾時時間
.setConnectionRequestTimeout(35000)// 請求逾時時間
.setSocketTimeout(60000)// 資料讀取逾時時間
.build();
// 為httpGet執行個體設定配置
httpGet.setConfig(requestConfig);
// 執行get請求得到傳回對象
response = httpClient.execute(httpGet);
// 通過傳回對象擷取傳回資料
HttpEntity entity = response.getEntity();
// 通過EntityUtils中的toString方法将結果轉換為字元串
result = EntityUtils.toString(entity);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
TemplateMessageData(實體類)
private TemplateMessageValue first; //頭資訊
private TemplateMessageValue remark; //尾資訊
private TemplateMessageValue keyword1;
private TemplateMessageValue keyword2;
private TemplateMessageValue keyword3;
private TemplateMessageValue keyword4;
private TemplateMessageValue keyword5;
TemplateMessageValue(實體類)
public TemplateMessageValue() {
}
public TemplateMessageValue(String value,String color)
{
this.value = value;
this.color = color;
}
private String value;
private String color;
直接運作就可以接收到消息啦