| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | 
							- <?php
 
- /**
 
-  * MageSpecialist
 
-  *
 
-  * NOTICE OF LICENSE
 
-  *
 
-  * This source file is subject to the Open Software License (OSL 3.0)
 
-  * that is bundled with this package in the file LICENSE.txt.
 
-  * It is also available through the world-wide-web at this URL:
 
-  * http://opensource.org/licenses/osl-3.0.php
 
-  * If you did not receive a copy of the license and are unable to
 
-  * obtain it through the world-wide-web, please send an email
 
-  * to info@magespecialist.it so we can send you a copy immediately.
 
-  *
 
-  * @category   MSP
 
-  * @package    MSP_ReCaptcha
 
-  * @copyright  Copyright (c) 2017 Skeeller srl (http://www.magespecialist.it)
 
-  * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 
-  */
 
- namespace MSP\ReCaptcha\Observer;
 
- use Magento\Framework\Event\Observer;
 
- use Magento\Framework\Event\ObserverInterface;
 
- use Magento\Framework\HTTP\PhpEnvironment\RemoteAddress;
 
- use MSP\ReCaptcha\Api\ValidateInterface;
 
- use MSP\ReCaptcha\Model\IsCheckRequiredInterface;
 
- use MSP\ReCaptcha\Model\Provider\FailureProviderInterface;
 
- use MSP\ReCaptcha\Model\Provider\ResponseProviderInterface;
 
- class ReCaptchaObserver implements ObserverInterface
 
- {
 
-     /**
 
-      * @var FailureProviderInterface
 
-      */
 
-     private $failureProvider;
 
-     /**
 
-      * @var ValidateInterface
 
-      */
 
-     private $validate;
 
-     /**
 
-      * @var RemoteAddress
 
-      */
 
-     private $remoteAddress;
 
-     /**
 
-      * @var ResponseProviderInterface
 
-      */
 
-     private $responseProvider;
 
-     /**
 
-      * @var IsCheckRequiredInterface
 
-      */
 
-     private $isCheckRequired;
 
-     /**
 
-      * ReCaptchaObserver constructor.
 
-      * @param ResponseProviderInterface $responseProvider
 
-      * @param ValidateInterface $validate
 
-      * @param FailureProviderInterface $failureProvider
 
-      * @param RemoteAddress $remoteAddress
 
-      * @param IsCheckRequiredInterface $isCheckRequired
 
-      */
 
-     public function __construct(
 
-         ResponseProviderInterface $responseProvider,
 
-         ValidateInterface $validate,
 
-         FailureProviderInterface $failureProvider,
 
-         RemoteAddress $remoteAddress,
 
-         IsCheckRequiredInterface $isCheckRequired
 
-     ) {
 
-         $this->responseProvider = $responseProvider;
 
-         $this->validate = $validate;
 
-         $this->failureProvider = $failureProvider;
 
-         $this->remoteAddress = $remoteAddress;
 
-         $this->isCheckRequired = $isCheckRequired;
 
-     }
 
-     /**
 
-      * @param Observer $observer
 
-      * @return void
 
-      */
 
-     public function execute(Observer $observer)
 
-     {
 
-         if ($this->isCheckRequired->execute()) {
 
-             $reCaptchaResponse = $this->responseProvider->execute();
 
-             $remoteIp = $this->remoteAddress->getRemoteAddress();
 
-             /** @var \Magento\Framework\App\Action\Action $controller */
 
-             $controller = $observer->getControllerAction();
 
-             if (!$this->validate->validate($reCaptchaResponse, $remoteIp)) {
 
-                 $this->failureProvider->execute($controller ? $controller->getResponse(): null);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |