1. 程式人生 > >Java微信開發-微信java開發接入平臺例項

Java微信開發-微信java開發接入平臺例項

package com.levi.service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.levi.utils.SHA1;

/**
 * Servlet implementation class WeiXin
 */
public class WeiXin extends HttpServlet {
	private static final long serialVersionUID = 1L;
	 private static String Token = "leviweixin";  //這個是之前在微信上填寫的Token資料,可以自定義
    /**
     * @see HttpServlet#HttpServlet()
     */
    public WeiXin() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		 System.out.println("get請求,正確");
		System.out.println("獲得微信請求!");
		String signature=request.getParameter("signature");
		String timestamp=request.getParameter("timestamp");
		String nonce=request.getParameter("nonce");
		String echostr=request.getParameter("echostr");
		System.out.println("signature="+signature);
		System.out.println("timestamp="+timestamp);
		System.out.println("nonce="+nonce);
		System.out.println("echostr="+echostr);
		System.out.println("Token="+Token);
		
		 List<String> params = new ArrayList<String>();  
         params.add(Token);  
         params.add(timestamp);  
         params.add(nonce);  
         //1. 將token、timestamp、nonce三個引數進行字典序排序  
         Collections.sort(params, new Comparator<String>() {  
             @Override  
             public int compare(String o1, String o2) {  
                 return o1.compareTo(o2);  
             }  
         }); 
         //2. 將三個引數字串拼接成一個字串進行sha1加密  
         String temp = SHA1.encode(params.get(0) + params.get(1) + params.get(2));  
         if (temp.equals(signature)) {  
        	 System.out.println("原:"+signature);
        	 System.out.println("測試:"+temp);
        	 System.out.println("匹配正確,傳回微信了");
             response.getWriter().write(echostr);  
             System.out.println("傳回微信成功");
         }  
		 else {  
        System.out.println("沒有傳回去資料,");
     } 
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	 System.out.println("post請求,錯誤了");
	}

}