HttpBridgePostRequestMethod.php
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\CMS\Captcha\Google;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Http\Http;
use Joomla\CMS\Http\HttpFactory;
use ReCaptcha\RequestMethod;
use ReCaptcha\RequestParameters;
/**
* Bridges the Joomla! HTTP API to the Google Recaptcha RequestMethod interface for a POST request.
*
* @since 3.9.0
*/
final class HttpBridgePostRequestMethod implements RequestMethod
{
/**
* URL to which requests are sent.
*
* @var string
* @since 3.9.0
*/
const SITE_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify';
/**
* The HTTP adapter
*
* @var Http
* @since 3.9.0
*/
private $http;
/**
* Class constructor.
*
* @param Http|null $http The HTTP adapter
*
* @since 3.9.0
*/
public function __construct(Http $http = null)
{
$this->http = $http ?: HttpFactory::getHttp();
}
/**
* Submit the request with the specified parameters.
*
* @param RequestParameters $params Request parameters
*
* @return string Body of the reCAPTCHA response
*
* @since 3.9.0
*/
public function submit(RequestParameters $params)
{
try
{
$response = $this->http->post(self::SITE_VERIFY_URL, $params->toArray());
return (string) $response->body;
}
catch (\UnexpectedValueException $exception)
{
return '';
}
}
}