![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/paypal/module-braintree-core/Model/Lpm/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace PayPal\Braintree\Model\Lpm; use Magento\Payment\Gateway\Response\HandlerInterface; use Magento\Sales\Api\Data\OrderPaymentInterface; use PayPal\Braintree\Gateway\Helper\SubjectReader; use PayPal\Braintree\Gateway\Response\PaymentDetailsHandler as BraintreePaymentDetailsHandler; use PayPal\Braintree\Observer\DataAssignObserver; class PaymentDetailsHandler implements HandlerInterface { private const PAYPAL_PAYMENT_ID = 'paymentId'; private const FUNDING_SOURCE = 'fundingSource'; /** * @var array */ private array $additionalInformationMapping = [ BraintreePaymentDetailsHandler::PROCESSOR_AUTHORIZATION_CODE, BraintreePaymentDetailsHandler::PROCESSOR_RESPONSE_CODE, BraintreePaymentDetailsHandler::PROCESSOR_RESPONSE_TEXT, ]; /** * @var SubjectReader */ private SubjectReader $subjectReader; /** * PaymentDetailsHandler Constructor * * @param SubjectReader $subjectReader */ public function __construct(SubjectReader $subjectReader) { $this->subjectReader = $subjectReader; } /** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); $transaction = $this->subjectReader->readTransaction($response); /** @var OrderPaymentInterface $payment */ $payment = $paymentDO->getPayment(); $payment->unsAdditionalInformation(DataAssignObserver::PAYMENT_METHOD_NONCE); foreach ($this->additionalInformationMapping as $item) { if (!isset($transaction->$item)) { continue; } $payment->setAdditionalInformation($item, $transaction->$item); } // Set PayPal paymentId and fundingSource of Local Payments $localPayment = $this->subjectReader->readLocalPayment($transaction); $payment->setAdditionalInformation(self::PAYPAL_PAYMENT_ID, $localPayment[self::PAYPAL_PAYMENT_ID]); $payment->setAdditionalInformation(self::FUNDING_SOURCE, $localPayment[self::FUNDING_SOURCE]); } }