/**
  * @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);
 }
Exemplo n.º 3
0
 /**
  * @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);
 }
Exemplo n.º 4
0
 /**
  * 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);
 }
Exemplo n.º 5
0
 /**
  * @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]);
 }
Exemplo n.º 6
0
 /**
  * @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});
     }
 }