/** * @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 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); }
/** * 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 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}); } }