1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Signifyd\Model\SignifydGateway\Request;
- use Magento\Sales\Model\Order;
- /**
- * Prepare data related to the card that was used for the purchase and its cardholder.
- */
- class CardBuilder
- {
- /**
- * @var AddressBuilder
- */
- private $addressBuilder;
- /**
- * @param AddressBuilder $addressBuilder
- */
- public function __construct(
- AddressBuilder $addressBuilder
- ) {
- $this->addressBuilder = $addressBuilder;
- }
- /**
- * Returns card data params based on payment and billing address info
- *
- * @param Order $order
- * @return array
- */
- public function build(Order $order)
- {
- $result = [];
- $address = $order->getBillingAddress();
- if ($address === null) {
- return $result;
- }
- $payment = $order->getPayment();
- $result = [
- 'card' => [
- 'cardHolderName' => $address->getFirstname() . ' ' . $address->getLastname(),
- 'last4' => $payment->getCcLast4(),
- 'expiryMonth' => $payment->getCcExpMonth(),
- 'expiryYear' => $payment->getCcExpYear(),
- 'billingAddress' => $this->addressBuilder->build($address)
- ]
- ];
- return $result;
- }
- }
|