1. 程式人生 > >微信測試號,微信公眾號開發中token驗證的解決辦法,即介面配置資訊中的url和token怎麼設定的方法

微信測試號,微信公眾號開發中token驗證的解決辦法,即介面配置資訊中的url和token怎麼設定的方法

首先我們來看兩張圖,第一張是微信公眾號中設定的圖

第二張是測試號中的圖片,之所以打馬賽克是怕不良之心的人,如果有疑問可以在文章後留言,因為本人在這個問題上搗鼓了好幾天,所以比較有心得,而微信公眾號的開發文件或者百度的資料都不多,所以很容易走彎路

現在講講介面配置資訊裡面的url和token到底填啥

微信需要一個請求一個URL來響應token驗證,也就是你點選確定的時候是向你指定的URL傳送一個請求,在請求裡面驗證你的token是否正確。也就是我們需要一個外網介面讓微信訪問,這個介面不需要傳入任何引數;注意必須是外網伺服器介面,微信才能呼叫.

所以需要寫一個介面放在伺服器上


import java.io.PrintWriter;

import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
@RequestMapping("/wechat")
@Controller
public class WechatController {
	private static Logger logger = Logger.getLogger(WechatController.class);
 
	private static String WECHAT_TOKEN = "wx_oms";
 
	@RequestMapping(value = "/wx.do")
	public void get(HttpServletRequest request, HttpServletResponse response) throws Exception {
 
		logger.error("WechatController   ----   WechatController");
 
		System.out.println("========WechatController========= ");
		logger.info("請求進來了...");
 
		Enumeration pNames = request.getParameterNames();
		while (pNames.hasMoreElements()) {
			String name = (String) pNames.nextElement();
			String value = request.getParameter(name);
			// out.print(name + "=" + value);
 
			String log = "name =" + name + "     value =" + value;
			logger.error(log);
		}
 
		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 (SignUtil.checkSignature(signature, timestamp, nonce)) {
			out.print(echostr);
//		}s
		out.close();
//		out = null;
 
	}
 
}

現在我來講講驗證原理:微信使用我們提供的token,通過演算法生成簽名,然後將這幾個引數(signature ,timestamp ,nonceechostr )傳給我們,我們服務端通過我們提供的token按照微信的演算法得出一個值,如果是同一個值說明token有效

現在你需要通過之前說的那個外網可以訪問的url訪問到我們這個類,也就是用url+' /wechat/wx.do '訪問到我們的方法,這樣微信就可以拿到我們的token了,然後就把這個url+' /wechat/wx.do '填寫在url的地方,你自己在程式碼中設定的token填寫在token的地方就可以完成驗證了