omasn/decaptcha-bundle

Symfony Decaptcha bundle,用于所有流行服务的Captcha识别,包括rucaptcha.com、2captcha.com、pixodrom.com、captcha24.com、socialink.ru、anti-captcha.com

1.1.2 2017-09-23 13:25 UTC

This package is auto-updated.

Last update: 2024-09-16 02:04:43 UTC


README

Symfony Decaptcha bundle。

该包是为了标准化所有猜测Captcha的服务而创建的。每个服务都有其自身的特性,现在您不需要操作多个包。只需熟悉可用的文档,就可以对每个服务进行自定义。该包涵盖了所有服务的功能。如果您觉得功能不足,欢迎提出所有建议。该Bundle是基于https://github.com/jumper423/decaptcha实现的。

选择语言

菜单

服务

所有流行服务的Captcha识别

安装

获取Bundle

运行以下命令,让Composer下载并安装Bundle:

或者您也可以运行:

composer require omasn/decaptcha-bundle "*"

或者将以下内容添加到composer.json文件中:

"omasn/decaptcha-bundle": "1.1.*"

启用Bundle

// in app/AppKernel.php
public function registerBundles() {
	$bundles = [
		...
		new Omasn\DecaptchaBundle\DecaptchaBundle(),
	];
	...
}

配置Bundle

为要使用的Captcha识别服务配置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识别Captcha。有关用法更多信息,请参阅文档

控制器动作示例

// 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',
    ]);
}
...