ERROR_WRONG_CAPTCHA_ID alıyorsanız ya da site ürettiğiniz token'ı sessizce reddediyorsa, ilk bakılacak yer kodunuz değil: gönderdiğiniz anahtardır. Enterprise'da iki ayrı anahtar dolaşır ve hata mesajı hangisinin yanlış yerde durduğunu söylemez. Kısa yanıt: CaptchaAI'ye sayfadaki sitekey (6L...) gider; AIzaSy... ile başlayan API anahtarı sunucunuzdan hiç çıkmaz.
Doğrulama akışında anahtarlar nereye düşer?
Ayrımı ezberlemek yerine akışı bir kez uçtan uca görün:
- Tarayıcı,
enterprise.jsdosyasını sitekey ile yükler - Tarayıcı doğrulamayı çalıştırır, token'ı alır
- Arka uç, token'ı ve API anahtarını Google'ın
assessmentsuç noktasına gönderir - Google, risk puanını döndürür
- Arka uç, puana bakarak isteği kabul eder ya da reddeder
CaptchaAI yalnızca 1 ve 2. adımın yerine geçer: sitekey ile geçerli bir token üretir. Doğrulamayı arka uç kendi API anahtarıyla yapar — o anahtarı bir çözüm servisine vermeniz gerekmez.
sitekey: sayfada duran herkese açık değer
sitekey sayfa HTML'sine gömülüdür; hangi reCAPTCHA yapılandırmasının yükleneceğini belirler:
<script src="https://www.google.com/recaptcha/enterprise.js?render=6LcR_RsTAAAAADge..."></script>
Ya da bir grecaptcha.enterprise.execute çağrısının içinde:
grecaptcha.enterprise.execute('6LcR_RsTAAAAADge...', { action: 'login' });
| sitekey | Değer |
|---|---|
| Önek | 6L (standart reCAPTCHA ile aynı) |
| Kısıt | Google Cloud Console'da alan adına bağlı |
| CaptchaAI | Çözüm için gereken tek değer |
API anahtarı: sunucudan çıkmayan gizli değer
API anahtarı, sunucu ile Google arasındaki doğrulama trafiğini yetkilendirir:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=AIzaSy...
| API anahtarı | Değer |
|---|---|
| Önek | AIzaSy (Google Cloud biçimi) |
| Kullanan | Yalnızca sitenin arka ucu |
| CaptchaAI | İhtiyaç duymaz |
Yan yana bakış: hangisi nerede durur?
| Özellik | sitekey | API anahtarı |
|---|---|---|
| Biçim | 6L... (40 karakter) |
AIzaSy... (39 karakter) |
| Görünürlük | Herkese açık (HTML/JS) | Gizli (sunucu tarafı) |
| İşlevi | Widget'ı yükler | Token'ı Google ile doğrular |
| Nerede durur? | Sayfa kaynağı | Ortam değişkenleri |
| CaptchaAI'ye gerekir mi? | Evet | Hayır |
Tek cümlelik kural: tarayıcının gördüğü değer sitekey'dir, görmemesi gereken değer API anahtarıdır.
Enterprise ile standart reCAPTCHA yapılandırması nerede ayrışır?
Ayrım, anahtarların nerede üretildiği ve nasıl doğrulandığındadır:
| Özellik | Standart (ücretsiz) | Enterprise |
|---|---|---|
| sitekey kaynağı | reCAPTCHA yönetici konsolu | Google Cloud Console |
| Doğrulama uç noktası | siteverify |
assessments |
| Doğrulama yetkisi | Gizli anahtar | API anahtarı veya hizmet hesabı |
| Puan yanıtı | score alanı (0,0–1,0) |
riskAnalysis.score + gerekçeler |
| CaptchaAI görev türü | RecaptchaV2Task / RecaptchaV3Task |
RecaptchaV2EnterpriseTask / RecaptchaV3EnterpriseTask |
Hangisinin çalıştığını script yolundan anlarsınız: /recaptcha/enterprise.js Enterprise'dır, /recaptcha/api.js standart sürümdür.
sitekey'i sayfadan çıkarmanın üç yolu
Yöntem 1: sayfa kaynağında arama
HTML içinde enterprise.js arayın:
View Source → Ctrl+F → "enterprise.js"
render parametresi sitekey'i taşır:
<script src="https://www.google.com/recaptcha/enterprise.js?render=6LcR_RsTAAAAADge..."></script>
Yöntem 2: JavaScript konsolu
Konsolda çalıştırın:
// Check for Enterprise grecaptcha
if (window.grecaptcha && window.grecaptcha.enterprise) {
console.log('reCAPTCHA Enterprise detected');
}
// Find site key from rendered widgets
document.querySelectorAll('[data-sitekey]').forEach(el => {
console.log('Site key:', el.getAttribute('data-sitekey'));
});
Yöntem 3: ağ sekmesi
Ağ isteklerini enterprise.js ile filtreleyin; sitekey istek URL'sinde görünür. Widget sonradan yerleştiriliyorsa en güvenilir yöntem budur.
CaptchaAI'ye Enterprise görevi gönderme
sitekey elinizdeyse görevi googlekey alanıyla gönderirsiniz:
POST https://ocr.captchaai.com/in.php
| Parametre | Değer | Zorunlu |
|---|---|---|
key |
CaptchaAI API anahtarınız (YOUR_API_KEY) |
evet |
method |
userrecaptcha |
evet |
googlekey |
Sayfadaki sitekey (6LcR_Rs...) |
evet |
pageurl |
CAPTCHA'nın göründüğü tam URL | evet |
enterprise |
1 (Enterprise işareti) |
evet |
enterprise_type |
v2 veya v3 ayrımı |
hayır |
action |
Eylem adı (v3 Enterprise için) | hayır |
Dönen g-recaptcha-response token'ını, tarayıcının ürettiği token'la aynı alana yazarsınız.
Türkiye'den bir senaryo: staging ile production anahtarlarının karışması
İstanbul'daki bir ekip ödeme adımını gece koşan regresyon paketiyle test ediyor; testler bir sabah "geçersiz sitekey" raporu bırakıyor. Sebep genelde ortam kaymasıdır: staging.example.com/qa-login sayfasının sitekey'i production değeriyle yer değiştirmiştir.
- sitekey'i sabit yapılandırma değeri gibi saklamayın; testin açtığı o sayfadan okuyun
pageurlalanına adres çubuğundaki URL'yi yazın- KVKK gereği test verisinde gerçek müşteri kaydı değil,
+90formatlı sahtetr-TRkayıtları kullanın
Maliyet tarafı öngörülebilir: planlar thread tabanlıdır. Gece koşan tek paket için BASIC ($15/ay, 5 thread) yeter, paralel job arttığında STANDARD ($30/ay, 15 thread) devreye girer. Fiyatlar USD olduğu için bütçe TL kurundan etkilenmez.
Sorun giderme
Raporlanan hataların çoğu şu beş satırdan biridir:
| Sorun | Sebep | Düzeltme |
|---|---|---|
| "ERROR_WRONG_CAPTCHA_ID" | sitekey yerine API anahtarı gönderildi | Sayfadaki 6L... değerini kullanın |
| Token reddedildi | Yanlış Enterprise sürümü (v2 / v3) | enterprise_type değerini düzeltin |
| "Geçersiz sitekey" | Anahtar yanlış ortamdan geldi | Anahtarı hedef URL'nin kaynağından çıkarın |
| Enterprise bayrağı eksik | İstek standart reCAPTCHA olarak gönderildi | İsteğe enterprise=1 ekleyin |
action uyuşmuyor |
v3'te farklı eylem adı bekleniyor | Sayfadaki execute çağrısındaki adı birebir gönderin |
Sık sorulan sorular
Sayfa kaynağında 6L... göremiyorum, sitekey nerede?
Widget büyük olasılıkla JavaScript ile sonradan yerleştiriliyordur. Ağ sekmesinde enterprise.js isteğini filtreleyin ya da konsolda data-sitekey özniteliklerine bakın.
enterprise=1 bayrağını göndermezsem ne olur?
İstek standart reCAPTCHA görevi olarak işlenir. Token elinize geçer ama site onu Enterprise doğrulamasında kabul etmez — en çok zaman kaybettiren sessiz hata budur.
sitekey her ortamda aynı mı kalır?
Genelde hayır. Çoğu ekip staging ve production için ayrı anahtar üretip her birini kendi alan adına bağlar; anahtarı koda gömmek yerine hedef sayfadan okuyun.
CaptchaAI'nin Google Cloud projeme erişmesi gerekir mi?
Hayır. Çözüm için herkese açık sitekey ve pageurl yeterlidir; API anahtarınız veya proje kimliğiniz hiçbir aşamada paylaşılmaz.
Enterprise için ayrı bir plana veya ayrı bir API anahtarına geçmem gerekir mi?
Hayır. Tek API anahtarı desteklenen tüm türlerde geçerlidir, planlar thread tabanlıdır ve Enterprise için ek ücretlendirme kalemi yoktur. Görevi ayıran tek şey enterprise=1 bayrağıdır.
İlgili Makaleler
- reCAPTCHA v2 callback sorununu API ile çözme
- IP beyaz listesi ve API anahtarı güvenliği
- CaptchaAI API anahtarı rotasyonu
Sonraki Adımlar
Hedef sayfadaki 6L... değerini alın, enterprise=1 ile gönderin, ilk Enterprise token'ınızı görün — CaptchaAI API anahtarınızı alın.