jumper423 / decaptcha



Package created to standardize all services for solving captcha. Each service has its own features and now You will have to look at the documentation for the specific service to do everything right. The package covers the entire functionality services. If You will be something lacking or suggestions, I'll be glad to hear them.

  • Suitable for all recognition services captcha
  • You can easily add a new service using the existing engine
  • Intuitable fast and straightforward setup
  • Recognition as the path to the file and links
  • ReCaptcha v2 without a browser
  • Full documentation
  • Covered by tests
Recognition captchas for all popular services
  • RuCaptcha
  • RuCaptcha ReCaptcha v2 without a browser
  • RuCaptcha ReCaptcha v3
  • RuCaptcha Manual
  • RuCaptcha Grid (ReCaptcha v2)
  • RuCaptcha ClickCaptcha
  • RuCaptcha KeyCaptcha
  • RuCaptcha FunCaptcha
  • RuCaptcha GeeTest
  • 2Captcha
  • 2Captcha ReCaptcha v2 without a browser
  • 2Captcha ReCaptcha v3
  • 2Captcha Manual
  • 2Captcha Grid (ReCaptcha v2)
  • 2Captcha ClickCaptcha
  • 2Captcha KeyCaptcha
  • 2Captcha FunCaptcha
  • 2Captcha GeeTest
The preferred way to install this extension via composer.

Or you can run

composer require --prefer-dist jumper423/decaptcha "*"

or add

"jumper423/decaptcha": "*"

in file composer.json.

Initialization Specify the key mandatory and optional parameters. Try the best to fill this promotes more rapid recognition of captcha.

use jumper423\decaptcha\services\RuCaptcha;

$captcha = new RuCaptcha([
    RuCaptcha::ACTION_FIELD_KEY => '94f39af4bb295c40546fba5c932e0d32',
Recognition In the first parameter, pass the link or path to the picture file in the second parameters of the recognition if necessary, override those which were transferred during the initialization.

if ($captcha->recognize('http://site.com/captcha.jpg')) {
    $code = $captcha->getCode();
} else {
    $error = $captcha->getError();
Not correctly recognized If You can understand that the answer which did not come true. Be sure to add below written code. It will save You money.


$balance = $captcha->getBalance();

Intercept errors If you wish, You can catch the error, but you need to call setCauseAnError


try {
    $code = $captcha->getCode();
} catch (\jumper423\decaptcha\core\DeCaptchaErrors $e) {

Documentation https://github.com/jumper423/decaptcha