Tinggalkan tebak-tebakan gambar bus yang membosankan. MathCAPTCHA menghasilkan soal secara prosedural (real-time), auto-scaling, dan sistem JSON callbacks profesional.
Implementasi bersih berbasis Vanilla JavaScript Class (ES6). Bebas library tambahan, aman dengan Private Fields (#).
API ini memerlukan standar HTML5. Pastikan baris paling atas dari file HTML Anda memuat tag doctype, atau fitur matematika tidak akan dimuat dengan baik.
<!DOCTYPE html>
<html lang="en">
...
Siapkan container kosong dan panggil script API MathCAPTCHA.
<!-- Place inside your form -->
<div id="my-captcha-box"></div>
<!-- Place Script below the form -->
<script src="https://jproject-1.github.io/captcha-math/api.js"></script>
<script>
const myCaptcha = new MathCAPTCHA({
containerId: 'my-captcha-box',
mode: 'auto',
language: 'id',
level: 'random',
maxAttempts: 5,
onSuccess: (response) => {
console.log("Success!", response);
// Send 'response.data.token' to backend for final validation
}
});
</script>
Berikut adalah penjelasan output yang diterima melalui fungsi callback saat pengguna berinteraksi.
{
"status": "success",
"data": {
"levelPlayed": 4,
"attemptsUsed": 2,
"timestamp": "2026-08-24...",
"token": "eyJ2YWxpZCI6..."
}
}
{
"status": "failed", // or "blocked"
"reason": "wrong_answer", // or "closed_by_user"
"attemptsUsed": 1,
"maxAttempts": 5,
"levelPlayed": 4,
"timestamp": "2026-08-24..."
}
| Parameter | Tipe Data | Default | Deskripsi Singkat |
|---|---|---|---|
| containerId* | String | null | (Wajib) ID elemen div tempat CAPTCHA di-render. |
| mode | String | auto |
Menentukan tema antarmuka. Opsi: 'light',
'dark', 'auto'.
|
| language | String | auto-web |
Bahasa instruksi UI. Opsi: 'id',
'en', dll, atau 'auto-user'.
|
| level | Integer|String | random |
Tingkat kesulitan (1 - 7). Gunakan
'random' untuk diacak.
|
| maxAttempts | Integer | 5 | Batas jumlah percobaan gagal قبل pemblokiran sementara. |
| onSuccess* | Function | void | (Wajib) Callback dieksekusi saat jawaban pengguna valid/benar. |