---
title: Nhật ký thay đổi
---

# Nhật ký thay đổi

Những thay đổi đáng chú ý của API và SDK CaptchaLa. Thời gian theo UTC.

## API

### 2026-06-20

- **Phản hồi của `/v1/validate`** giờ trả về một đối tượng `captcha_args` — ngữ cảnh tại thời điểm giải được trả lại để ghi log / chấm điểm rủi ro của riêng bạn (không bao giờ bắt buộc cho việc đạt/không đạt):
  - `platform` — `web` / `android` / `ios` / `flutter` / `windows` / …
  - `user_ip` — IP của người dùng cuối được ghi lại tại thời điểm giải
  - `referer` — URL trang giải (web); `null` trên nền tảng native
  - `pkg` — package ứng dụng / bundle id (native); `null` trên web
  - `solved_at` — thời điểm hoàn thành giải (giây unix)
  - `risk_score` — điểm rủi ro tại thời điểm giải (0-100, càng cao càng rủi ro)
- **`client_ip`** trên `/v1/validate` là **tùy chọn nhưng được khuyến nghị** — IP của người dùng cuối lấy từ request đến của bạn, dùng cho các kiểm tra rủi ro bổ sung. Có thể bỏ qua một cách an toàn. (Việc đối chiếu chính xác IP lúc giải với lúc gửi đã bị loại bỏ vì nó từ chối những người dùng hợp lệ trên mạng CDN và mạng IPv4/IPv6 dual-stack.)
- Hoàn toàn tương thích ngược — các tích hợp hiện có vẫn hoạt động bình thường mà không cần thay đổi.

## PHP SDK (`captchala/captchala-php`)

### 1.2.3 — 2026-06-20

- Đã thêm `ValidateResult::getUserIp()` và `ValidateResult::getCaptchaArgs()`.
- Tham số `$clientIp` của `validate()` giờ là tùy chọn nhưng được khuyến nghị (dùng cho kiểm tra rủi ro). Tương thích ngược.

## Go SDK (`github.com/Captcha-La/captchala-go`)

### 1.2.2 — 2026-06-20

- Đã thêm `ValidateResult.CaptchaArgs` (struct `CaptchaArgs`: `Platform`, `UserIP`, `Referer`, `Pkg`, `SolvedAt`, `RiskScore`).
- Tham số IP của `ValidateWithClientIP` giờ là tùy chọn nhưng được khuyến nghị. Tương thích ngược.
