微信測試帳號如何設置URL和Token,以及相關驗證的原理


首先說明,本幫助文檔是利用javaweb的Servlet來進行“接口配置信息配置信息”認證的。

在學習微信公眾號開發的時候,讀到填寫服務器配置的幫助部分,總是不能理解為啥按照他的步驟做總是設置失敗(吐槽:這個幫助寫的太簡略,原理講了一般,對不了解PHP的人簡直就是歧視)。

設置失敗的一個重要原因:url的請求相應沒有返回echostr這個參數。

如果讀到這里你還不能理解,就請看以下的截圖和源代碼:

1、首先我搭建了一個將局域網內我的電腦發布到intetnet上的環境,利用ngrok,如果想了解如何搭建,請查看我的另一篇博客:ngrok使用命令幫助

 1 @WebServlet("/portal")
 2 public class ServerPortal extends HttpServlet {
 3     private static final long serialVersionUID = 1L;
 4     private static final String token = "janken";
 5 
 6     /**
 7      * @see HttpServlet#HttpServlet()
 8      */
 9     public ServerPortal() {
10         super();
11     }
12 
13     /**
14      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
15      */
16     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
17         String signature = request.getParameter("signature");
18         String timestamp = request.getParameter("timestamp");
19         String nonce = request.getParameter("nonce");
20         String echostr = request.getParameter("echostr");
21         System.out.println("signature:" + signature);
22         System.out.println("timestamp:" + timestamp);
23         System.out.println("nonce:" + nonce);
24         System.out.println("echostr:" + echostr);
25         PrintWriter pw = response.getWriter();
26         pw.append(echostr);
27         pw.flush();
28     }
29 
30     /**
31      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
32      */
33     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
34         doGet(request, response);
35     }
36 
37 }

 

4、根據ngrok提供的url和我們創建的servlet填寫微信的url和token

5、點擊提交,這是微信會主動訪問我們寫的servlet,獲得我們返回的參數中的echostr的內容即可認證通過。

 

認證過程原理分析:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM