<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package com.bcxin.survey.controller.wechat;

import com.bcxin.survey.service.wechat.WechatService;
import com.bcxin.survey.wechat.utils.SignUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.transaction.annotation.Transactional;

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


/**
 * 涓庡井淇″钩鍙板鎺ervlet
 * @author zhaofei
 *
 */
@Transactional
public class WechatServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long	serialVersionUID	= 1L;
	final static Logger logger = LoggerFactory.getLogger(WechatServlet.class);
	/** 
     * 纭璇锋眰鏉ヨ嚜寰俊鏈嶅姟鍣� 
     */
	@Override
	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();  
        // 閫氳繃妫€楠宻ignature瀵硅姹傝繘琛屾牎楠岋紝鑻ユ牎楠屾垚鍔熷垯鍘熸牱杩斿洖echostr锛岃〃绀烘帴鍏ユ垚鍔燂紝鍚﹀垯鎺ュ叆澶辫触  
        if (SignUtil.checkSignature(signature, timestamp, nonce)) {  
            out.print(echostr);  
            logger.info("閫氳繃楠岃瘉鎺ュ叆鎴愬姛锛�");
        }  
        out.close();  
        out = null;  
	}

	/** 
     * 澶勭悊寰俊鏈嶅姟鍣ㄥ彂鏉ョ殑娑堟伅 
     */
	@Override
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		// TODO 娑堟伅鐨勬帴鏀躲€佸鐞嗐€佸搷搴�  
		// 灏嗚姹傘€佸搷搴旂殑缂栫爜鍧囪缃负UTF-8锛堥槻姝腑鏂囦贡鐮侊級  
        request.setCharacterEncoding("UTF-8");  
        response.setCharacterEncoding("UTF-8");  
  
        // 璋冪敤鏍稿績涓氬姟绫绘帴鏀舵秷鎭€佸鐞嗘秷鎭�  
        String respMessage = WechatService.processRequest(request);  
          
        // 鍝嶅簲娑堟伅  
        PrintWriter out = response.getWriter();  
        out.print(respMessage);  
        out.close();  
    }  
 }
</pre></body></html>