Image to Text - Captcha dạng ảnh chữ

Hướng dẫn sử dụng API Giải Captcha Image to Text của anticaptcha.top

Captcha thông thường là một hình ảnh có chứa văn bản bị bóp méo nhưng con người có thể đọc được. Để giải quyết hình ảnh xác thực, người dùng phải nhập văn bản từ hình ảnh. trông giống như những hình ảnh dưới đây

1. Tạo yêu cầu/Request

POST : https://anticaptcha.top/api/captcha

Các tham số Body:

Tên trường dữ liệu

Kiểu dữ liệu

Bắt buộc

Mô tả

apikey

String

x

Key duy nhất để xác định đối tác API

img

String

x

Link ảnh hoặc ảnh dạng base64 Lưu ý: vietinbank thì truyền giá trị là thẻ svg

type

Integer

x

------------ 19: VietinBank và các loại captcha tương tự

------------ 0: Các captcha dạng Image to text không thuộc các loại trên

calc

Integer

1: Kiểu toán học Ví dụ: 2 + 7 = 9

numeric

Integer

1: Kiểu số Nếu captcha là dạng chỉ toàn số thì truyền thêm tham số numeric=1 để áp buộc giải ra dạng số, tránh một số captcha hay bị giải sai ở số 0 thành chữ O

casesensitive

Integer

1: Giải ra kết quả phân biệt chữ hoa chữ thường

POST HTTP
Url: https://anticaptcha.top/api/captcha
Content-Type: application/json

{
	"apikey": "YOUR_API_KEY",
	"img": "image base64 encoded hoặc url ảnh",
	"type": 9 // id loại captcha muốn giải theo bảng trên
}

2. Kết quả trả về/Response

Kết quả trả về dạng JSON gồm các trường sau

Tên trường dữ liệu

Kiểu dữ liệu

Mô tả

success

boolean

Mã thông báo xác định kết quả của bước gửi captcha qua POST

true: Thành công false: Thất bại

message

String

Thông báo tương ứng nếu có

captcha

String

mã captcha đã giải

base64img

String

{
	"success": true,
	"message": "Thành công",
	"captcha": "764NHK", //kết quả giải ra
	"base64img": "/9j/4AAQSkZJRgABAgAAAQABAAsLDBkSEw8UHRofHh0aHBwgJC4nICI..."
}

3. Code mẫu

public class CatpchaResult
{
    public string log { get; set; }
    public bool status { get; set; }
    public string catcha { get; set; }
}
public class AnticaptchaTopApi
{
    public string apiKey = "";
    public string Post(string url, object data, string method = "POST")
    {
        int num = 0;
        NameValueCollection values;
        while (num < 1)
        {
            try
            {
                using (WebClient webClient = new WebClient())
                {
                    values = new NameValueCollection();
                    if (data != null)
                    {
                        data.GetType().GetProperties().ToList().ForEach(delegate (PropertyInfo pi)
                        {
                            values.Add(pi.Name, (pi.GetValue(data, null) ?? "").ToString());
                        });
                        byte[] bytes = webClient.UploadValues(url, method, values);
                        return Encoding.UTF8.GetString(bytes);
                    }
                    return webClient.DownloadString(url);
                }
             }
            catch
            {                
            }
        }
        return "";
    }
    public CatpchaResult GetCatpcha(string img, int type)
    {
        var data = new
        {
            apikey = apiKey,
            type = type,
            img = img            
        };
        var rs = new CatpchaResult
        {
            status = false
        };
        try
        {
            var result = JsonConvert.DeserializeObject<dynamic>(Post("https://anticaptcha.top/api/captcha", data));
            if (result.success == true)
            {
                rs.status = true;
                rs.catcha = result.captcha;
                rs.log = result.message;
            }
        }
        catch
        {
        }
        return rs;
    }
}

Lưu ý: Nên sử dụng phần mềm PostMan để kiểm tra chạy test trước

Last updated