PayPalDetailsHandler.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Gateway\Response;
  7. use Magento\Payment\Gateway\Response\HandlerInterface;
  8. use Magento\Braintree\Gateway\SubjectReader;
  9. use Magento\Sales\Api\Data\OrderPaymentInterface;
  10. /**
  11. * Class PayPalDetailsHandler
  12. */
  13. class PayPalDetailsHandler implements HandlerInterface
  14. {
  15. const PAYMENT_ID = 'paymentId';
  16. const PAYER_EMAIL = 'payerEmail';
  17. /**
  18. * @var SubjectReader
  19. */
  20. private $subjectReader;
  21. /**
  22. * Constructor
  23. *
  24. * @param SubjectReader $subjectReader
  25. */
  26. public function __construct(SubjectReader $subjectReader)
  27. {
  28. $this->subjectReader = $subjectReader;
  29. }
  30. /**
  31. * @inheritdoc
  32. */
  33. public function handle(array $handlingSubject, array $response)
  34. {
  35. $paymentDO = $this->subjectReader->readPayment($handlingSubject);
  36. /** @var \Braintree\Transaction $transaction */
  37. $transaction = $this->subjectReader->readTransaction($response);
  38. /** @var OrderPaymentInterface $payment */
  39. $payment = $paymentDO->getPayment();
  40. $payPal = $this->subjectReader->readPayPal($transaction);
  41. $payment->setAdditionalInformation(self::PAYMENT_ID, $payPal[self::PAYMENT_ID]);
  42. $payment->setAdditionalInformation(self::PAYER_EMAIL, $payPal[self::PAYER_EMAIL]);
  43. }
  44. }