Google ReCAPTCHA ver.2 backend client
, (*1)
You can find full documentation about Google reCAPTCHA API v2 here., (*2)
Installation
You can install this package with Composer.
Add lines below in your composer.json file:, (*3)
``` json
{
"require": {
"dario_swain/re-captcha-library": "2.0.*"
}
}, (*4)
or you can use ```composer require``` like here:
``` bash
composer require dario_swain/re-captcha-library 2.0.*
Usage Example
<html>
<head>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body>
<form method="post">
<div class="g-recaptcha" data-sitekey="{RECAPTCHA SITE KEY}"></div>
<br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
More about client integration you can find in official docs., (*5)
Verifying the user's response:
``` php
<?php, (*6)
$privateKey = 'RECAPTCHA PRIVATE KEY'; //You Google API private key
$clientIp = $_SERVER['REMOTE_ADDR']; //Client IP Address
$gReCaptchaResponse = $_POST['g-recaptcha-response']; //Google reCAPTCHA response
$reCaptchaClient = new Client($privateKey);
try {
$success = $reCaptchaClient->validate($gReCaptchaResponse, $clientIp);
if ($success) {
//Submit form
}
} catch(ValidationException $e) {
$validationError = $e->getMessage();
}
**Simple work example you can find in ```examples/index.php```.**
##Custom Client
You can change reCaptcha standard HTTP client to custom client implementation. In this case you can use
```DS\Library\ReCaptcha\Http\Client\ClientInterface``` object. Also you can use any PSR7 comparability HTTP client like
``` php
<?php
class ProxyClient implements ClientInterface
{
{@inheritdoc}
public function send(RequestInterface $request);
{
//Your business logic
}
}
...
$proxyHttpClient = new ProxyClient();
$reCaptchaClient = new Client($privateKey, $proxyHttpClient);
$reCaptchaClient->validate($gReCaptchaResponse, $clientIp);
Guzzle integration
Instead of standard HTTP client you can use more advanced HTTP client like Guzzle.
Now ReCaptchaLibrary support 3.*
, 4.*
, 5.*
and 6.*
versions of guzzlehttp/guzzle
, (*7)
Guzzle client example:, (*8)
use DS\Library\ReCaptcha\Http\Client\Guzzle\GuzzleClient;
$reCaptchaGuzzleClient = new GuzzleClient(); //Guzzle client will be detected automatically
//Also you can manually create and initialize Guzzle Client
$guzzle = new \GuzzleHttp\Client($configuration);
$reCaptchaGuzzleClient = new GuzzleClient($guzzle);
$reCaptchaClient = new Client('PRIVATE KEY', $reCaptchaGuzzleClient);
$reCaptchaClient->validate($gResponse);
Copyright
Copyright (c) 2015 Ilya Pokamestov dario_swain@yahoo.com., (*9)