溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java調(diào)用微信客服消息實(shí)現(xiàn)發(fā)貨通知的方法詳解

發(fā)布時(shí)間:2020-10-08 21:29:02 來源:腳本之家 閱讀:157 作者:qq_29057491 欄目:編程語言

本文實(shí)例講述了Java調(diào)用微信客服消息實(shí)現(xiàn)發(fā)貨通知的方法。分享給大家供大家參考,具體如下:

微信文檔地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140547&token=&lang=zh_CN

個(gè)人說明:這是一個(gè)樣例,微信客戶消息有很多種,我現(xiàn)在用的是公眾號發(fā)送消息。樣子如下圖。

Java調(diào)用微信客服消息實(shí)現(xiàn)發(fā)貨通知的方法詳解

說明:下面開始代碼部分了。

1.首先看微信文檔。這里才是我們需要的

Java調(diào)用微信客服消息實(shí)現(xiàn)發(fā)貨通知的方法詳解

這里是說發(fā)消息要POST請求這個(gè)接口:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

但是這個(gè)接口后面需要帶一個(gè)參數(shù)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);

獲取到一個(gè)ACCESS_TOKEN,然后就可以加入到微信請求中

//這里就是一個(gè)微信請求,首先用String放著
String tokenurl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+token3;
//首先確定是發(fā)送文字消息,還是圖文消息,這里是手寫的json數(shù)據(jù).
//發(fā)送文字消息,無連接
String json = "{\"touser\":\"這里是Openid\",\"msgtype\":\"text\",\"text\":{\"content\":\"Hello World\"}}";
//圖文消息,有鏈接連接
String jsonpic = "{\"touser\":\""+這里是Openid+"\","+ "\"msgtype\":\"news\",\"news\":{\"articles\":["+ "{\"title\":\"HelloWorld\",\"url\":\"要跳轉(zhuǎn)的鏈接"}]}}";
System.out.println("這里是json"+jsonpic);
//請求方法,然后放回OK 成功,否則錯誤。這里這個(gè)請求方法在下邊
String xmlStr = HttpKit.post(tokenurl,jsonpic);
System.out.println("這里是xmlStr"+xmlStr);

說明:WeixinUtil.getAccess_token()方法。我放整個(gè)類了。改包名,只需要導(dǎo)入兩個(gè)包

package com.uitrs.weixin;
import java.net.HttpURLConnection;
import java.net.URL;
public class WeixinUtil {
  //傳入U(xiǎn)RL
    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");// 連接超時(shí)30秒
        System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 讀取超時(shí)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();方法,我放整個(gè)類了。這個(gè)類我用的是導(dǎo)入

import com.jfinal.kit.HttpKit;

這個(gè)包到了jfinal的包。出自下面三個(gè)包當(dāng)中,具體我也不清楚了

1.jfinal-2.2.jar (應(yīng)該是這個(gè))
2.jfinal-2.2-bin-with-src.jar
3.jfinal-weixin-1.7-bin-with-src.jar

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java字符與字符串操作技巧總結(jié)》、《Java數(shù)組操作技巧總結(jié)》、《Java數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Java編碼操作技巧總結(jié)》和《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI