เลี่ยงแคปต์ช่าด้วย PHP
รวมแพ็ค เกจ PHP สำหรับโซลูชันบายพาสแคปต์ชาอัตโนมัติ อัตราการตรวจสอบแคปต์ชาที่ประสบความสำเร็จที่สุด
แพ็คเกจ PHP สำหรับการผสานรวมกับ API ของ 2Captcha ได้ง่าย บริการแก้แคปต์ชาเพื่อเลี่ยง reCAPTCHA, hCaptcha, Arkose captcha, Geetest และแก้แคปต์ชาอื่นๆ
เริ่มต้นอย่างรวดเร็วการติดตั้ง
แพ็คเกจสคริปต์สามารถติดตั้งได้โดยใช้ตัวติดตั้งแพ็คเกจหรือด้วยตนเอง
Composer
ในการติดตั้งแ พ็คเกจของไลบรารีโดยอัตโนมัติ คุณต้องใช้โซลูชันมาตรฐานสำหรับแพ็คเกจ PHP - Composer ดาวน์โหลดจาก ลิงค์ และติดตั้งตามคำแนะนำ หลังจากติดตั้งแอปพลิเคชั่นแล้ว ให้ใช้คำสั่ง:
composer require 2captcha/2captcha
คู่มือ
ดาวน์โหลดเนื้อหาของ src
โฟลเดอร์ไปยังโปรเจคของคุณและเปิดใช้งาน src/autoloader.php
ตัวโหลดอัตโนมัติด้วยคำสั่ง:
require 'path/to/autoloader.php';
ขอเชิญคุณสำรวจ GitHubของเรา พื้นที่เก็บข้อมูลที่คุณสามารถค้นหาไลบรารีและโมดูลสำหรับการผสานรวมกับ API ของเราได้อย่างง่ายดาย
การกำหนดค่า
คำอธิบายที่จำเป็นทั้งหมดของพารามิเตอร์เพื่อกำหนดค่าแพ็คเกจที่ติดตั้ง
ตัวอย่างของคลาส TwoCaptcha
สามารถสร้างได้ดังนี้
$solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
คุณยังสามารถปรับแต่งตัวเลือกบางอย่างสำหรับตัวอย่างที่สร้างขึ้นได้:
$solver = new \TwoCaptcha\TwoCaptcha([
'apiKey' => 'YOUR_API_KEY',
'softId' => 123,
'callback' => 'https://your.site/result-receiver',
'defaultTimeout' => 120,
'recaptchaTimeout' => 600,
'pollingInterval' => 10,
]);
ตัวเลือกอินสแตนซ์ TwoCaptcha
ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
softId | - | รหัสซอฟต์แวร์ของคุณที่ได้รับหลังจากเผยแพร่ใน 2Captcha แคตตาล็อกซอฟต์แวร์ |
โทรกลับ | - | URL ของเว็บเซิร์ฟเวอร์ของคุณที่ได้รับผลการจดจำแคปต์ชา URL ควรลงทะเบียนครั้งแรกใน การตั้งค่า pingback ของบัญชีของคุณ |
defaultTimeout | 120 | หมดเวลาโพลเป็นวินาทีสำหรับแคปต์ชาทุกประเภท ยกเว้น reCAPTCHA กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API |
recaptchaTimeout | 600 | หมดเวลาโพลสำหรับ reCAPTCHA ในไม่กี่วินาที กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API |
pollingInterval | 10 | ช่วงเวลาเป็นวินาทีระหว่างคำขอถึง res.php ปลายทาง API ไม่แนะนำให้ตั้งค่าน้อยกว่า 5 วินาที |
สำคัญ: เมื่อcallback
ถูกกำหนดไว้สำหรับTwoCaptcha
ตัวอย่างเช่น วิธีทั้งหมดจะคืนค่าเฉพาะ captcha ID และอย่าสำรวจ API เพื่อรับผลลัพธ์ ผลลัพธ์จะถูกส่งไปยัง callback URL เพื่อรับคำตอบด้วยตนเอง ใช้ วิธีรับผลลัพธ์
แก้ไขแคปต์ช่า
เมื่อคุณกดการใช้แคปต์ช่าแบบรูปภาพจะมีตัวเลือกเพิ่มเติมเพื่อช่วย 2Captcha พนักงานแก้ไขให้ถูกต้อง
ตัวเลือกแคปต์ช่า
ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
numeric | 0 | กำหนดว่าแคปต์ชามีตัวเลขหรือสัญลักษณ์อื่นหรือไม่ ดูข้อมูลเพิ่มเติมในเอกสาร API |
minLength | 0 | ความยาวของคำตอบขั้นต่ำ |
maxLength | 0 | ความยาวของคำตอบสูงสุด |
phrase | 0 | กำหนดว่าคำตอบมีหลายคำหรือไม่ |
caseSensitive | 0 | กำหนดว่าคำตอบนั้นคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หรือไม่ |
calc | 0 | กำหนดแคปต์ชาที่ต้องคำนวณ |
lang | - | กำหนดภาษาแคปต์ชา ดู รายการภาษาที่รองรับ |
hintImg | - | รูปภาพพร้อมคำใบ้ที่โชว์ให้พนักงานที่มีแคปต์ชา |
hintText | - | คำใบ้หรือข้อความงานที่แสดงต่อผู้ปฏิบัติงานด้วยแคปต์ชา |
- แคปต์ช่าปกติ
- แคปต์ช่าข้อความ
- reCAPTCHA v2
- reCAPTCHA v3
- FunCaptcha
- GeeTest
- hCaptcha
- KeyCaptcha
- Capy
- Grid
- Canvas
- ClickCaptcha
- หมุน
ในการเลี่ยงผ่านแคปต์ชาปกติ (ข้อความบนภาพบิดเบี้ยว) ให้ใช้วิธีต่อไปนี้ วิธีนี้สามารถใช้เพื่อตรวจสอบข้อความบนรูปภาพได้
$result = $solver->normal('path/to/captcha.jpg');
วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาที่ต้องตอบคำถามที่ระบุเป็นข้อความที่ชัดเจน
ใช้วิธีนี้เพื่อแก้ปัญหา reCAPTCHA V2 และรับโทเค็นเพื่อเลี่ยงการป้องกัน
$result = $solver->recaptcha([
'sitekey' => '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
'url' => 'https://mysite.com/page/with/recaptcha',
]);
เมธอดที่จัดเตรียมโปรแกรมแก้ไขปัญหา reCAPTCHA V3 และส่งคืนโทเค็น
$result = $solver->recaptcha([
'sitekey' => '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
'url' => 'https://mysite.com/page/with/recaptcha',
'version' => 'v3',
]);
วิธีการแก้ FunCaptcha (Arkoselabs) ส่งคืนโทเค็น
$result = $solver->funcaptcha([
'sitekey' => '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
'url' => 'https://mysite.com/page/with/funcaptcha',
]);
วิธีแก้ไขปัญหา GeeTest puzzle Captcha โดยส่งกลับชุดของโทเค็นเป็น JSON
$result = $solver->geetest([
'gt' => 'f1ab2cdefa3456789012345b6c78d90e',
'challenge' => '12345678abc90123d45678ef90123a456b',
'url' => 'https://www.site.com/page/',
]);
ใช้วิธีนี้เพื่อแก้ไขปัญหา hCaptcha challenge ส่งคืนโทเค็นเพื่อเลี่ยงแคปต์ชา
$result = $solver->hcaptcha([
'sitekey' => '10000000-ffff-ffff-ffff-000000000001',
'url' => 'https://www.site.com/page/',
]);
วิธีการที่ใช้โทเค็นเพื่อแก้ปัญหา KeyCaptcha
วิธีที่ใช้โทเค็นเพื่อเลี่ยงผ่านแคปต์ชา Capy puzzle
$result = $solver->capy([
'sitekey' => 'PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
'url' => 'http://mysite.com/',
'api_server' => 'https://jp.api.capy.me/',
]);
วิธี Grid เรียกว่าวิธี Old reCAPTCHA V2 วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาประเภทใดก็ได้ ซึ่งคุณสามารถใช้กริดกับรูปภาพและจำเป็นต้องคลิกช่องกริดเฉพาะ ส่งกลับจำนวนกล่อง
$result = $solver->grid('path/to/captcha.jpg');
คุณสามารถใช้วิธี Canvas เมื ่อคุณต้องการวาดเส้นรอบวัตถุบนรูปภาพ ส่งกลับชุดพิกัดของจุดเพื่อวาดรูปหลายเหลี่ยม
$result = $solver->canvas('path/to/captcha.jpg');
วิธี ClickCaptcha จะคืนค่าพิกัดของจุดบนรูปภาพแคปต์ชา สามารถใช้ได้หากต้องการคลิกเฉพาะจุดบนภาพ
$result = $solver->coordinates('path/to/captcha.jpg');
วิธีนี้สามารถใช้แก้แคปต์ชาที่ขอให้หมุนวัตถุได้ ส่วนใหญ่ใช้เพื่อเลี่ยงผ่าน FunCaptcha ส่งกลับมุมการหมุน
วิธีอื่นๆ
วิธีการที่ถูกต้องเพิ่มเติมที่ใช้ในระหว่างการทำงานของสคริปต์หลัก
send / getResult
วิธีการเหล่านี้สามารถใช้สำหรับการส่งแคปต์ช่าด้วยตนเองและการตอบแบบสำรวจความคิดเห็น
$id = $solver->send(['file' => 'path/to/captcha.jpg', ...]);
sleep(20);
$code = $solver->getResult($id);
balance
ใช้วิธีนี้เพื่อรับยอดเงินในบัญชีของคุณ
$balance = $solver->balance();
report
ใช้วิธีนี้เพื่อรายงานคำตอบแคปต์ช่าที่ดีหรือไม่ดี
$solver->report($id, true); // captcha solved correctly
$solver->report($id, false); // captcha solved incorrectly
การจัดการข้อผิดพลาด
ข้อผิดพลาดมาตรฐานที่เป็นไปได้ที่ส่งคืนโดยบริการเมื่อประมวลผลคำขอ
หากตัวแก้ไขแคปต์ช่าเกิดข้อผิดพลาดส่งข้อยกเว้น วิธีจัดการอย่างเหมาะสม เราแนะนำให้ใช้ ลอง/จับ
เพื่อจัดการกับข้อยกเว้น
try {
$result = $solver->text('If tomorrow is Saturday, what day is today?');
} catch (\TwoCaptcha\Exception\ValidationException $e) {
// invalid parameters passed
} catch (\TwoCaptcha\Exception\NetworkException $e) {
// network error occurred
} catch (\TwoCaptcha\Exception\ApiException $e) {
// api respond with error
} catch (\TwoCaptcha\Exception\TimeoutException $e) {
// captcha is not solved so far
}