Java+微信公眾號開發過程步驟詳解

來源:互聯網
上載者:User
這兩天自己想學習公眾號開發,於是在網上搜尋並上手練習,在這個過程中因為各種問題,(描述不完整,有的文章不知道怎麼就蹦出個新的常量,也沒說在哪定義的,還有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.登入公眾號平台,滑到最下面,點擊左下角的開發——基本配置:

點擊提交按鈕,提示提交成功就說明能訪問到我們自己的後台了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.