這兩天自己想學習公眾號開發,於是在網上搜尋並上手練習,在這個過程中因為各種問題,(描述不完整,有的文章不知道怎麼就蹦出個新的常量,也沒說在哪定義的,還有jar包版本的問題坑了我一天的時間)所以特此在這記錄。
1.首先,先得註冊一個公眾號,上度娘搜尋公眾平台,進入這個頁面註冊(已有帳號的跳過這個步驟):
2.然後用Eclipse建立一個項目,這裡我建的是web項目,jdk是1.8,tomcat是8.5.
3.為了和建立串連,建好工程後先建立一個類,命名為:CheckUtil,它的作用是作為和串連的校正工具,代碼如下:
import java.security.MessageDigest;import java.util.Arrays;public class CheckUtil {public static final String tooken = "自行定義"; //開發人員自行定義Tookenpublic static boolean checkSignature(String signature,String timestamp,String nonce){//1.定義數組存放tooken,timestamp,nonceString[] arr = {tooken,timestamp,nonce};//2.對數組進行排序Arrays.sort(arr);//3.產生字串StringBuffer sb = new StringBuffer();for(String s : arr){sb.append(s);}//4.sha1加密,網上均有現成代碼String temp = getSha1(sb.toString());//5.將加密後的字串,與傳來的加密簽名比較,返回結果return temp.equals(signature);}public static String getSha1(String str){ if(str==null||str.length()==0){ return null; } char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f'}; try { MessageDigest mdTemp = MessageDigest.getInstance("SHA1"); mdTemp.update(str.getBytes("UTF-8")); byte[] md = mdTemp.digest(); int j = md.length; char buf[] = new char[j*2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; buf[k++] = hexDigits[byte0 & 0xf]; } return new String(buf); } catch (Exception e) { // TODO: handle exception return null; } }}
4.然後建立一個servlet,重寫doGet方法接收發來的GET請求,部分代碼如下:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");String signature = request.getParameter("signature");String timestamp = request.getParameter("timestamp");String nonce = request.getParameter("nonce");String echostr = request.getParameter("echostr");PrintWriter out = response.getWriter();if(CheckUtil.checkSignature(signature, timestamp, nonce)){//如果校正成功,將得到的隨機字串原路返回out.print(echostr);}}
5.代碼寫完後,這裡需要一個工具將我們的內網連結映射為公網,這樣才能訪問到我們的後台,這裡我採用的是一款免費的映射工具ngrok,去度娘搜尋下載即可,下載完後解壓放在一個指定位置,同時按住win鍵+R鍵,輸入cmd,斷行符號進入dos環境,切換到ngrock所在盤符,輸入ngrock http 8080 斷行符號(在這之前先啟動tomcat):
6.斷行符號後等待一會,即可得到公網連結,所示陰影地區給出的連結,即可直接存取本機127.0.0.1:8080下的連結內容,分別是http協議和https協議對應的地址:
7.登入公眾號平台,滑到最下面,點擊左下角的開發——基本配置:
點擊提交按鈕,提示提交成功就說明能訪問到我們自己的後台了。