代碼編寫完成后啟動瀏覽器,輸入映射網址什么信?息都沒有是什么情況啊
protected void doGet(HttpServletRequest request, HttpServletResponse response)
???throws ServletException, IOException {
??response.setContentType("text/html;charset=utf-8");
??String signature=new String("signature");//微信加密簽名
??String timestamp=new String("timestamp");//時間戳
??String nonce=new String("nonce");//隨機數
??String echostr=new String("echostr");//隨機字符串
??
??PrintWriter out=response.getWriter();
??//調用CheckUtil類
??if (CheckUtil.checkSignature(signature, timestamp, nonce)) {
???//效驗成功返回一個隨機字符串
???out.print(echostr);
???System.out.println("驗證成功");
??}else {
???System.out.println("驗證失敗");
??}
??
??
?}
?
?
?
public class CheckUtil {
?//設置一個token的值
?private static final String token="weixin";
?//生成一個效驗方法
?public static boolean checkSignature(String signature,String timestamp,String nonce){
??//排序
??String[] arr=new String[]{token,timestamp,nonce};
??Arrays.sort(arr);
??//生成字符串
??StringBuffer conter=new StringBuffer();
??for (int i = 0; i < arr.length; i++) {
???conter.append(arr[i]);
???//System.out.println(conter);
???//System.out.println(conter.append(arr));
??}
??System.out.println(conter);
??//sha1加密
??String temp=getSha1(conter.toString());
??System.out.println(temp);
??return temp.equals(signature);
?}
?
?private static String getSha1(String str) {
??if (str == null || str.length() == 0) {
???return null;
??}
??char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f','A', 'B', 'C', 'D', 'E', 'F'};
??MessageDigest mdTemp;
??try {
???mdTemp = MessageDigest.getInstance("SHA1");
???mdTemp.update(str.getBytes("UTF-8"));
???byte[] md = mdTemp.digest();
???int j = md.length;
???char buf[] = new char[j * 2];
???int k = 0;
???for (int i = 0; i < j; i++) {
????byte b0 = md[i];
????buf[k++] = hexDigits[b0 >>> 4 & 0xf];
????buf[k++] = hexDigits[b0 & 0xf];
???}
???return new String(buf);
??} catch (Exception e) {
???return null;
??}
?}
}
2017-04-03
這個doGet是處理微信服務器發送過來的Get請求的,Get請求攜帶了signature、timestamp、nonce、echostr這4個參數,
所以獲得這些參數的方法是request.getPatameter(""),并不是你自己new出來的
而且127.0.0.1是本地ip,也沒有進行內網映射,微信服務器想發送請求也是發送不過去的
2017-04-01
應該沒有映射成功。使用Sunny-Ngrok試試看。https://www.ngrok.cc/