1.是否開啓驗證碼接口java
接口名:/api3/account/captcha/openjson
http://localhost:8080/api3/account/captcha/openapi
參數非空:mobileNo;countryNo;服務器
請求方式:getsession
2.預處理驗證碼接口app
接口名:/api3/account/captcha/startpost
無參數:code
請求方式:getserver
3.獲取驗證碼接口接口
接口名:/api3/account/captcha/verify
參數非空:geetest_challenge,geetest_validate,geetest_seccode,
mobileNo,countryNo。
請求方式:post
{"success":1,"gt":"b46d1900d0a894591916ea94ea91bd2c","challenge":"aca5d5a08c397aba47a973a1f968e9af"}
@RequestMapping("/StartCaptchaServlet") protected void StartCaptchaServlet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { GeetestLib gtSdk = new GeetestLib(GeetestConfig.getCaptcha_id(), GeetestConfig.getPrivate_key()); String resStr = "{}"; //自定義userid String userid = "test"; //進行驗證預處理 int gtServerStatus = gtSdk.preProcess(userid); //將服務器狀態設置到session中 request.getSession().setAttribute(gtSdk.gtServerStatusSessionKey, gtServerStatus); //將userid設置到session中 request.getSession().setAttribute("userid", userid); resStr = gtSdk.getResponseStr(); PrintWriter out = response.getWriter(); out.println(resStr); } @RequestMapping("/VerifyLoginServlet") protected void VerifyLoginServlet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { GeetestLib gtSdk = new GeetestLib(GeetestConfig.getCaptcha_id(), GeetestConfig.getPrivate_key()); String challenge = request.getParameter(GeetestLib.fn_geetest_challenge); String validate = request.getParameter(GeetestLib.fn_geetest_validate); String seccode = request.getParameter(GeetestLib.fn_geetest_seccode); //從session中獲取gt-server狀態 int gt_server_status_code = (Integer) request.getSession().getAttribute(gtSdk.gtServerStatusSessionKey); //從session中獲取userid String userid = (String)request.getSession().getAttribute("userid"); int gtResult = 0; if (gt_server_status_code == 1) { //gt-server正常,向gt-server進行二次驗證 gtResult = gtSdk.enhencedValidateRequest(challenge, validate, seccode, userid); System.out.println(gtResult); } else { // gt-server非正常狀況下,進行failback模式驗證 System.out.println("failback:use your own server captcha validate"); gtResult = gtSdk.failbackValidateRequest(challenge, validate, seccode); System.out.println(gtResult); } if (gtResult == 1) { // 驗證成功 PrintWriter out = response.getWriter(); Map<String,Object> data = new HashMap<String, Object>(); try { data.put("status", "success"); data.put("version", gtSdk.getVersionInfo()); } catch (Exception e) { e.printStackTrace(); } JsonSerializer json = new JsonSerializer(); out.println(json.serialize(data.toString())); } else { // 驗證失敗 Map<String,Object> data = new HashMap<String, Object>(); try { data.put("status", "fail"); data.put("version", gtSdk.getVersionInfo()); } catch (Exception e) { e.printStackTrace(); } PrintWriter out = response.getWriter(); JsonSerializer json = new JsonSerializer(); out.println(json.serialize(data.toString())); } // // if (gtResult == 1) { // // 驗證成功 // PrintWriter out = response.getWriter(); // JSONObject data = new JSONObject(); // try { // data.put("status", "success"); // data.put("version", gtSdk.getVersionInfo()); // } catch (JSONException e) { // e.printStackTrace(); // } // out.println(data.toString()); // } // else { // // 驗證失敗 // JSONObject data = new JSONObject(); // try { // data.put("status", "fail"); // data.put("version", gtSdk.getVersionInfo()); // } catch (JSONException e) { // e.printStackTrace(); // } // PrintWriter out = response.getWriter(); // out.println(data.toString()); // } }