12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
- namespace Amazon\Payment\Controller\Payment;
- use Amazon\Core\Helper\Data;
- use Amazon\Core\Model\Config\Source\UpdateMechanism;
- use Amazon\Payment\Api\Ipn\CompositeProcessorInterface;
- use Amazon\Payment\Ipn\IpnHandlerFactoryInterface;
- use Magento\Framework\App\Action\Action;
- use Magento\Framework\App\Action\Context;
- use Magento\Framework\App\RequestInterface;
- use Magento\Framework\App\ResponseInterface;
- use Magento\Framework\Exception\NotFoundException;
- class Ipn extends Action
- {
- /**
- * @var IpnHandlerFactoryInterface
- */
- private $ipnHandlerFactory;
- /**
- * @var CompositeProcessorInterface
- */
- private $compositeProcessor;
- /**
- * @var Data
- */
- private $coreHelper;
- public function __construct(
- Context $context,
- IpnHandlerFactoryInterface $ipnHandlerFactory,
- CompositeProcessorInterface $compositeProcessor,
- Data $coreHelper
- ) {
- parent::__construct($context);
- $this->ipnHandlerFactory = $ipnHandlerFactory;
- $this->compositeProcessor = $compositeProcessor;
- $this->coreHelper = $coreHelper;
- }
- public function execute()
- {
- if (UpdateMechanism::IPN !== $this->coreHelper->getUpdateMechanism()) {
- throw new NotFoundException(__('IPN not enabled.'));
- }
- $headers = $this->_request->getHeaders()->toArray();
- $body = $this->_request->getContent();
- $ipnHandler = $this->ipnHandlerFactory->create($headers, $body);
- $ipnData = $ipnHandler->toArray();
- $this->compositeProcessor->process($ipnData);
- }
- }
|