/**
  * @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);
     /** @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]);
 }
Пример #3
0
 /**
  * @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);
     }
 }
Пример #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);
 }
 /**
  * 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);
     }
 }
Пример #6
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]);
 }
 /**
  * @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});
     }
 }