微信開發第二講 開發與微信交互的servlet



在上一節中我們學習瞭如何在微信服務號中配置URL和token,現在介紹一下如何開發與微信交互的Servlet。

package com.demo.weixin.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
 

/import com.demo.weixin.service.CoreService;
import com.demo.weixin.util.SignUtil;

/**
 * 核心請求處理類
 *
 *
 */
public class CoreServlet extends HttpServlet {

 private static final Logger logger = Logger.getLogger(CoreServlet.class);

 /**
  * 確認請求來自微信服務器
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException
 {
  // 微信加密簽名
  String signature = request.getParameter("signature");
  // 時間戳
  String timestamp = request.getParameter("timestamp");
  // 隨機數
  String nonce = request.getParameter("nonce");
  // 隨機字符串
  String echostr = request.getParameter("echostr");

  PrintWriter out = response.getWriter();
  // 通過檢驗signature對請求進行校驗,若校驗成功則原樣返回echostr,表示接入成功,否則接入失敗
  String token ="weixin";
 
  if (SignUtil.checkSignature(token,signature, timestamp, nonce))

  {
   out.print(echostr);//如果簽名成功,返回給微信
  }
  out.close();
  out = null;
 }

 /**
  * 處理微信服務器發來的消息
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException
 {
  // 將請求、響應的編碼均設置爲UTF-8(防止中文亂碼)
   request.setCharacterEncoding("UTF-8");
   response.setCharacterEncoding("UTF-8") ;
   //本節暫不介紹微信消息處理

   //String respMessage = CoreService.processWeixinRequest(request);
   //logger.info(respMessage);//輸出響應的消息字符串
   // 響應消息
   PrintWriter out = response.getWriter();
   out.print(respMessage);
   out.close();
 }


}


SignUtil.java的代碼及servlet配置參考:

http://www.openjweb.com/portal/pubinfo/001031003/20151011/6d3d8a2b966f46178d5f8310628d1161.html

手機端瀏覽參考:

http://www.openjweb.com/portal/pubinfo/001031003/20151011/m_6d3d8a2b966f46178d5f8310628d1161.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章