Symfony Decaptcha bundle.
Пакет создан для стандартизации всех сервисов по разгадыванию капч. У каждого сервиса есть свои особенности и теперь вам не нужно оперировать несколькими пакетами. Достаточно лишь ознакомится с имеющейся документацией для того чтобы настроить каждый. Пакет покрывает всю функциональность сервисов. Если вам будет недостаточно имеющейся функциональности, буду рад выслушать все предложения. Бандл реализован на основе https://github.com/jumper423/decaptcha
Распознование капч по всех популярных сервисах
Предпочтительный способ установить это расширение через composer.
Либо запустить
composer require omasn/decaptcha-bundle "*"или добавить
"omasn/decaptcha-bundle": "1.1.*"в файл composer.json.
// in app/AppKernel.php
public function registerBundles() {
$bundles = [
...
new Omasn\DecaptchaBundle\DecaptchaBundle(),
];
...
}Настройте api_key у тех сервисов по распознаванию капч, которые вы хотите использовать.
# app/config/config.yml
omasn_decaptcha:
ru_captcha:
api_key: '%api_key%'
anticaptcha:
api_key: '%api_key%'
captcha_24:
api_key: '%api_key%'
pixodrom:
api_key: '%api_key%'
ripcaptcha:
api_key: '%api_key%'
socialink:
api_key: '%api_key%'
two_captcha:
api_key: '%api_key%'Небольшой пример того как на основе сервиса RuCaptcha получить ваш текущий баланс в системе и по имеющемуся url распознать капчу. Подробную информацию о использовании можно найти в Документации
// src/AppBundle/Controller/DefaultController.php
...
public function indexAction()
{
$oReCapcha = $this->get('decaptcha.ru_captcha');
$iBalance = $oReCapcha->getBalance();
...
if ($oReCapcha->recognize('http://site.ru/captcha.jpg')) {
$code = $oReCapcha->getCode();
if (!$myApp->validCode($code)) {
$oReCapcha->notTrue(); // not valid code request in api
}
} else {
$error = $oReCapcha->getError();
}
}
...Добавим в конфиг RuCaptcha дополнительные параметры "Описание полей"
// src/AppBundle/Controller/DefaultController.php
use Omasn\DecaptchaBundle\Services\RuCaptcha;
...
public function indexAction()
{
$oReCapcha = $this->get('decaptcha.ru_captcha');
$oReCapcha->setParams([
RuCaptcha::ACTION_FIELD_FILE => '/file/to/path',
]);
}
...