/** * Builds ENV request * * @param array $buildSubject * @return array */ public function build(array $buildSubject) { $paymentDO = $this->subjectReader->readPayment($buildSubject); /** @var Payment $payment */ $payment = $paymentDO->getPayment(); return ['transaction_id' => $payment->getParentTransactionId() ?: $payment->getLastTransId()]; }
/** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); /** * @TODO after changes in sales module should be refactored for new interfaces */ /** @var OrderPaymentInterface $payment */ $payment = $paymentDO->getPayment(); ContextHelper::assertOrderPayment($payment); /** @var Transaction $transaction */ $transaction = $this->subjectReader->readTransaction($response); if ($payment->hasAdditionalInformation(self::LIABILITY_SHIFTED)) { // remove 3d secure details for reorder $payment->unsAdditionalInformation(self::LIABILITY_SHIFTED); $payment->unsAdditionalInformation(self::LIABILITY_SHIFT_POSSIBLE); } if (empty($transaction->threeDSecureInfo)) { return; } /** @var \Braintree\ThreeDSecureInfo $info */ $info = $transaction->threeDSecureInfo; $payment->setAdditionalInformation(self::LIABILITY_SHIFTED, $info->liabilityShifted ? 'Yes' : 'No'); $shiftPossible = $info->liabilityShiftPossible ? 'Yes' : 'No'; $payment->setAdditionalInformation(self::LIABILITY_SHIFT_POSSIBLE, $shiftPossible); }
/** * @inheritdoc */ public function build(array $buildSubject) { $paymentDO = $this->subjectReader->readPayment($buildSubject); $order = $paymentDO->getOrder(); $billingAddress = $order->getBillingAddress(); return [self::CUSTOMER => [self::FIRST_NAME => $billingAddress->getFirstname(), self::LAST_NAME => $billingAddress->getLastname(), self::COMPANY => $billingAddress->getCompany(), self::PHONE => $billingAddress->getTelephone(), self::EMAIL => $billingAddress->getEmail()]]; }
/** * @inheritdoc */ public function build(array $buildSubject) { $paymentDO = $this->subjectReader->readPayment($buildSubject); $payment = $paymentDO->getPayment(); $extensionAttributes = $payment->getExtensionAttributes(); $paymentToken = $extensionAttributes->getVaultPaymentToken(); return ['amount' => $this->formatPrice($this->subjectReader->readAmount($buildSubject)), 'paymentMethodToken' => $paymentToken->getGatewayToken()]; }
/** * @inheritdoc */ public function build(array $buildSubject) { $paymentDO = $this->subjectReader->readPayment($buildSubject); $payment = $paymentDO->getPayment(); $transactionId = $payment->getCcTransId(); if (!$transactionId) { throw new LocalizedException(__('No authorization transaction to proceed capture.')); } return [self::TRANSACTION_ID => $transactionId, PaymentDataBuilder::AMOUNT => $this->formatPrice($this->subjectReader->readAmount($buildSubject))]; }
/** * @inheritdoc */ public function build(array $buildSubject) { $result = []; $paymentDO = $this->subjectReader->readPayment($buildSubject); $amount = $this->formatPrice($this->subjectReader->readAmount($buildSubject)); if ($this->is3DSecureEnabled($paymentDO->getOrder(), $amount)) { $result['options'][Config::CODE_3DSECURE] = ['required' => true]; } return $result; }
/** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); /** * @TODO after changes in sales module should be refactored for new interfaces */ $payment = $paymentDO->getPayment(); ContextHelper::assertOrderPayment($payment); $payment->setIsTransactionClosed(false); }
/** * @inheritdoc */ public function execute(array $commandSubject) { /** @var \Magento\Payment\Gateway\Data\PaymentDataObjectInterface $paymentDO */ $paymentDO = $this->subjectReader->readPayment($commandSubject); /** @var \Magento\Sales\Api\Data\OrderPaymentInterface $paymentInfo */ $paymentInfo = $paymentDO->getPayment(); ContextHelper::assertOrderPayment($paymentInfo); $command = $this->getCommand($paymentInfo); return $this->commandPool->get($command)->execute($commandSubject); }
/** * @inheritdoc */ public function build(array $buildSubject) { $paymentDO = $this->subjectReader->readPayment($buildSubject); $payment = $paymentDO->getPayment(); $result = [self::AMOUNT => $this->formatPrice($this->subjectReader->readAmount($buildSubject)), self::PAYMENT_METHOD_NONCE => $payment->getAdditionalInformation(DataAssignObserver::PAYMENT_METHOD_NONCE)]; $merchantAccountId = $this->config->getValue(Config::KEY_MERCHANT_ACCOUNT_ID); if (!empty($merchantAccountId)) { $result[self::MERCHANT_ACCOUNT_ID] = $merchantAccountId; } return $result; }
/** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); /** @var \Braintree\Transaction $transaction */ $transaction = $this->subjectReader->readTransaction($response); /** @var OrderPaymentInterface $payment */ $payment = $paymentDO->getPayment(); $payPal = $this->subjectReader->readPayPal($transaction); $payment->setAdditionalInformation(self::PAYMENT_ID, $payPal[self::PAYMENT_ID]); $payment->setAdditionalInformation(self::PAYER_EMAIL, $payPal[self::PAYER_EMAIL]); }
/** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); $transaction = $this->subjectReader->readTransaction($response); $payment = $paymentDO->getPayment(); // add vault payment token entity to extension attributes $paymentToken = $this->getVaultPaymentToken($transaction); if (null !== $paymentToken) { $extensionAttributes = $this->getExtensionAttributes($payment); $extensionAttributes->setVaultPaymentToken($paymentToken); } }
/** * Handles response * * @param array $handlingSubject * @param array $response * @return void */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); /** @var \Braintree\Transaction $transaction */ $transaction = $this->subjectReader->readTransaction($response); if (!isset($transaction->riskData)) { return; } $payment = $paymentDO->getPayment(); ContextHelper::assertOrderPayment($payment); $payment->setAdditionalInformation(self::RISK_DATA_ID, $transaction->riskData->id); $payment->setAdditionalInformation(self::RISK_DATA_DECISION, $transaction->riskData->decision); }
/** * @inheritdoc */ public function build(array $buildSubject) { $result = []; if (!$this->config->hasFraudProtection()) { return $result; } $paymentDO = $this->subjectReader->readPayment($buildSubject); $payment = $paymentDO->getPayment(); $data = $payment->getAdditionalInformation(); if (isset($data[DataAssignObserver::DEVICE_DATA])) { $result[self::DEVICE_DATA] = $data[DataAssignObserver::DEVICE_DATA]; } return $result; }
/** * Handles response * * @param array $handlingSubject * @param array $response * @return void */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); if ($paymentDO->getPayment() instanceof Payment) { /** @var \Braintree\Transaction $transaction */ $transaction = $this->subjectReader->readTransaction($response); /** @var Payment $orderPayment */ $orderPayment = $paymentDO->getPayment(); $this->setTransactionId($orderPayment, $transaction); $orderPayment->setIsTransactionClosed($this->shouldCloseTransaction()); $closed = $this->shouldCloseParentTransaction($orderPayment); $orderPayment->setShouldCloseParentTransaction($closed); } }
/** * @inheritdoc */ public function build(array $buildSubject) { $paymentDO = $this->subjectReader->readPayment($buildSubject); $order = $paymentDO->getOrder(); $result = []; $billingAddress = $order->getBillingAddress(); if ($billingAddress) { $result[self::BILLING_ADDRESS] = [self::FIRST_NAME => $billingAddress->getFirstname(), self::LAST_NAME => $billingAddress->getLastname(), self::COMPANY => $billingAddress->getCompany(), self::STREET_ADDRESS => $billingAddress->getStreetLine1(), self::EXTENDED_ADDRESS => $billingAddress->getStreetLine2(), self::LOCALITY => $billingAddress->getCity(), self::REGION => $billingAddress->getRegionCode(), self::POSTAL_CODE => $billingAddress->getPostcode(), self::COUNTRY_CODE => $billingAddress->getCountryId()]; } $shippingAddress = $order->getShippingAddress(); if ($shippingAddress) { $result[self::SHIPPING_ADDRESS] = [self::FIRST_NAME => $shippingAddress->getFirstname(), self::LAST_NAME => $shippingAddress->getLastname(), self::COMPANY => $shippingAddress->getCompany(), self::STREET_ADDRESS => $shippingAddress->getStreetLine1(), self::EXTENDED_ADDRESS => $shippingAddress->getStreetLine2(), self::LOCALITY => $shippingAddress->getCity(), self::REGION => $shippingAddress->getRegionCode(), self::POSTAL_CODE => $shippingAddress->getPostcode(), self::COUNTRY_CODE => $shippingAddress->getCountryId()]; } return $result; }
/** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $isActiveVaultModule = $this->vaultPayment->isActiveForPayment(ConfigProvider::CODE); if (!$isActiveVaultModule) { return; } $paymentDO = $this->subjectReader->readPayment($handlingSubject); $transaction = $this->subjectReader->readTransaction($response); $payment = $paymentDO->getPayment(); // add vault payment token entity to extension attributes $paymentToken = $this->getVaultPaymentToken($transaction); if (null !== $paymentToken) { $extensionAttributes = $this->getExtensionAttributes($payment); $extensionAttributes->setVaultPaymentToken($paymentToken); } }
/** * Builds ENV request * * @param array $buildSubject * @return array */ public function build(array $buildSubject) { $paymentDO = $this->subjectReader->readPayment($buildSubject); /** @var Payment $payment */ $payment = $paymentDO->getPayment(); $amount = null; try { $amount = $this->formatPrice($this->subjectReader->readAmount($buildSubject)); } catch (\InvalidArgumentException $e) { // pass } /* * we should remember that Payment sets Capture txn id of current Invoice into ParentTransactionId Field */ $txnId = $payment->getParentTransactionId(); return ['transaction_id' => $txnId, PaymentDataBuilder::AMOUNT => $amount]; }
/** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); /** @var \Braintree\Transaction $transaction */ $transaction = $this->subjectReader->readTransaction($response); /** @var OrderPaymentInterface $payment */ $payment = $paymentDO->getPayment(); $payment->setCcTransId($transaction->id); $payment->setLastTransId($transaction->id); //remove previously set payment nonce $payment->unsAdditionalInformation(DataAssignObserver::PAYMENT_METHOD_NONCE); foreach ($this->additionalInformationMapping as $item) { if (!isset($transaction->{$item})) { continue; } $payment->setAdditionalInformation($item, $transaction->{$item}); } }
/** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); $transaction = $this->subjectReader->readTransaction($response); /** * @TODO after changes in sales module should be refactored for new interfaces */ $payment = $paymentDO->getPayment(); ContextHelper::assertOrderPayment($payment); $creditCard = $transaction->creditCard; $payment->setCcLast4($creditCard[self::CARD_LAST4]); $payment->setCcExpMonth($creditCard[self::CARD_EXP_MONTH]); $payment->setCcExpYear($creditCard[self::CARD_EXP_YEAR]); $payment->setCcType($this->getCreditCardType($creditCard[self::CARD_TYPE])); // set card details to additional info $payment->setAdditionalInformation(self::CARD_NUMBER, 'xxxx-' . $creditCard[self::CARD_LAST4]); $payment->setAdditionalInformation(OrderPaymentInterface::CC_TYPE, $creditCard[self::CARD_TYPE]); }
/** * @inheritdoc */ public function handle(array $handlingSubject, array $response) { $paymentDO = $this->subjectReader->readPayment($handlingSubject); /** @var \Braintree\Transaction $transaction */ $transaction = $this->subjectReader->readTransaction($response); /** * @TODO after changes in sales module should be refactored for new interfaces */ /** @var OrderPaymentInterface $payment */ $payment = $paymentDO->getPayment(); ContextHelper::assertOrderPayment($payment); $payment->setTransactionId($transaction->id); $payment->setCcTransId($transaction->id); $payment->setLastTransId($transaction->id); $payment->setIsTransactionClosed(false); //remove previously set payment nonce $payment->unsAdditionalInformation(DataAssignObserver::PAYMENT_METHOD_NONCE); foreach ($this->additionalInformationMapping as $item) { if (!isset($transaction->{$item})) { continue; } $payment->setAdditionalInformation($item, $transaction->{$item}); } }
/** * Retrieve method configured value * * @param array $subject * @param int|null $storeId * * @return mixed * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function handle(array $subject, $storeId = null) { $paymentDO = $this->subjectReader->readPayment($subject); $payment = $paymentDO->getPayment(); return $payment instanceof Payment && !(bool) $payment->getAmountPaid(); }