您好,登錄后才能下訂單哦!
本文實例講述了Java調用微信客服消息實現發貨通知的方法。分享給大家供大家參考,具體如下:
微信文檔地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140547&token=&lang=zh_CN
個人說明:這是一個樣例,微信客戶消息有很多種,我現在用的是公眾號發送消息。樣子如下圖。
說明:下面開始代碼部分了。
1.首先看微信文檔。這里才是我們需要的
這里是說發消息要POST請求這個接口:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
但是這個接口后面需要帶一個參數ACCESS_TOKEN。
下面先獲取ACCESS_TOKEN。
//這里的WeixinUtil.getAccess_token()方法,放在下面。 String aToken = WeixinUtil.getAccess_token("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+你的appId+"&secret="+你的appSecret+""); System.out.println("這里是aToken"+aToken); String[] tokenOne = aToken.split(":"); String[] token = tokenOne[1].split(","); char [] stringArr = token[0].toCharArray(); String token3 = "" ; for(int i=1;i<stringArr.length-1;i++){ String token2 = String.valueOf(stringArr[i]); token3 += token2; } System.out.println("這里是ACCESS_TOKEN"+token3);
獲取到一個ACCESS_TOKEN,然后就可以加入到微信請求中
//這里就是一個微信請求,首先用String放著 String tokenurl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+token3; //首先確定是發送文字消息,還是圖文消息,這里是手寫的json數據. //發送文字消息,無連接 String json = "{\"touser\":\"這里是Openid\",\"msgtype\":\"text\",\"text\":{\"content\":\"Hello World\"}}"; //圖文消息,有鏈接連接 String jsonpic = "{\"touser\":\""+這里是Openid+"\","+ "\"msgtype\":\"news\",\"news\":{\"articles\":["+ "{\"title\":\"HelloWorld\",\"url\":\"要跳轉的鏈接"}]}}"; System.out.println("這里是json"+jsonpic); //請求方法,然后放回OK 成功,否則錯誤。這里這個請求方法在下邊 String xmlStr = HttpKit.post(tokenurl,jsonpic); System.out.println("這里是xmlStr"+xmlStr);
說明:WeixinUtil.getAccess_token()
方法。我放整個類了。改包名,只需要導入兩個包
package com.uitrs.weixin; import java.net.HttpURLConnection; import java.net.URL; public class WeixinUtil { //傳入URL public static String getAccess_token(String url) { String accessToken = null; try { URL urlGet = new URL(url); HttpURLConnection http = (HttpURLConnection) urlGet .openConnection(); http.setRequestMethod("GET"); // 必須是get方式請求 http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); http.setDoOutput(true); http.setDoInput(true); System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 連接超時30秒 System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 讀取超時30秒 http.connect(); InputStream is = http.getInputStream(); int size = is.available(); byte[] jsonBytes = new byte[size]; is.read(jsonBytes); accessToken = new String(jsonBytes, "UTF-8"); System.out.println(accessToken); is.close(); } catch (Exception e) { e.printStackTrace(); } return accessToken; } }
說明:HttpKit.post();
方法,我放整個類了。這個類我用的是導入
import com.jfinal.kit.HttpKit;
這個包到了jfinal的包。出自下面三個包當中,具體我也不清楚了
1.jfinal-2.2.jar (應該是這個)
2.jfinal-2.2-bin-with-src.jar
3.jfinal-weixin-1.7-bin-with-src.jar
更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java字符與字符串操作技巧總結》、《Java數組操作技巧總結》、《Java數學運算技巧總結》、《Java編碼操作技巧總結》和《Java數據結構與算法教程》
希望本文所述對大家java程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。