栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 腾讯验证码平台使用实例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 腾讯验证码平台使用实例

主要就是官方的这个图:

前端调用接口,得到腾讯发过来的几个数据,前端把这几个数据给后端,后端拿到这些数据后传给腾讯,让其判断是否正常,以及其他属性。

程序运行截图如下:

点击登录后,拖动正确进行跳转,拖动错误就重新输入

看看后台的打印:

这个是腾讯反馈的数据,response为1说明是正常,风险等级为0

程序结构如下:

源码如下:

LoginServlet.java

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
 
 
@WebServlet(value = "/login")
public class LoginServlet extends HttpServlet{
 
 
    private static final String APP_ID = "xxxxxxxxxx";
    private static final String APP_SECRET = "xxxxxxxxxx**";
    private static final String VERIFY_URI = "https://ssl.captcha.qq.com/ticket/verify?aid=%s&AppSecretKey=%s&Ticket=%s&Randstr=%s&UserIP=%s";
 
    public static int verifyTicket(String ticket, String rand, String userIp) {
      CloseableHttpClient httpclient = HttpClients.createDefault();
      HttpGet httpGet;
      CloseableHttpResponse response = null;
      try {
 httpGet = new HttpGet(String.format(VERIFY_URI,
     APP_ID,
     APP_SECRET,
     URLEncoder.encode(ticket, "UTF-8"),
     URLEncoder.encode(rand, "UTF-8"),
     URLEncoder.encode(userIp, "UTF-8")
 ));
 response = httpclient.execute(httpGet);
 
 HttpEntity entity = response.getEntity();
 if (entity != null) {
   String res = EntityUtils.toString(entity);
   System.out.println(res); // 临时输出
 
   JSonObject result = JSON.parseObject(res);
   // 返回码
   int code = result.getInteger("response");
   // 恶意等级
   int evilLevel = result.getInteger("evil_level");
 
   // 验证成功
   if (code == 1) return evilLevel;
 }
      } catch (java.io.IOException e) {
 // 忽略
      } finally {
 try {
   response.close();
 } catch (Exception ignore) {
 }
      }
 
      return -1;
    }
 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
 
    this.doPost(request, response);
  }
 
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
 
    //验证
    String ticket = request.getParameter("Ticket");
    String randstr = request.getParameter("Randstr");
    String userIP = request.getRemoteAddr();
    verifyTicket(ticket, randstr, userIP);
 
 
 
    response.sendRedirect("success.jsp");
  }
}

web.xml


 

  Archetype Created Web Application

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>



  qq
  
  




success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


  Title


SUCCESS

porn.xml



  4.0.0
 
  org.example
  wxDemo
  1.0-SNAPSHOT
 
  war
 
  
 
    
      com.alibaba
      fastjson
      1.2.62
    
 
    
      org.apache.httpcomponents
      httpcore
      4.4.5
    
 
    
      org.apache.httpcomponents
      httpclient
      4.5.11
    
 
  
 
 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/135342.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号