%PDF- %PDF-
Direktori : /home/graphicd/public_html/vebto/common/Settings/Validators/ |
Current File : /home/graphicd/public_html/vebto/common/Settings/Validators/RecaptchaCredentialsValidator.php |
<?php namespace Common\Settings\Validators; use Exception; use Illuminate\Support\Arr; use Common\Core\HttpClient; class RecaptchaCredentialsValidator { const KEYS = ['recaptcha.site_key', 'recaptcha.secret_key']; /** * @var HttpClient */ private $httpClient; public function __construct() { $this->httpClient = new HttpClient([ 'exceptions' => true ]); } public function fails($settings) { try { $response = $this->httpClient->post('https://www.google.com/recaptcha/api/siteverify', [ 'form_params' => [ 'response' => 'foo-bar', 'secret' => Arr::get($settings, 'recaptcha.secret_key'), ] ]); if ($response['success'] === false && Arr::get($response, 'error-codes.1') === 'invalid-input-secret') { $errors = ['recaptcha.secret_key' => 'This recaptcha secret key is not valid.']; if ( ! Arr::get($settings, 'recaptcha.site_key')) { $errors['recaptcha.site_key'] = 'Recaptcha site key is required'; } return $errors; } } catch (Exception $e) { return $this->getErrorMessage($e); } } /** * @param Exception $e * @return array */ private function getErrorMessage($e) { return ['recaptcha-group' => $e->getMessage()]; } }