/** * Instantiate state and set it to state object * * @param string $paymentAction * @param \Magento\Framework\DataObject $stateObject * @return void */ public function initialize($paymentAction, $stateObject) { switch ($paymentAction) { case \Magento\Paypal\Model\Config::PAYMENT_ACTION_AUTH: case \Magento\Paypal\Model\Config::PAYMENT_ACTION_SALE: $payment = $this->getInfoInstance(); $order = $payment->getOrder(); $order->setCanSendNewEmailFlag(false); $payment->setAmountAuthorized($order->getTotalDue()); $payment->setBaseAmountAuthorized($order->getBaseTotalDue()); $this->_generateSecureSilentPostHash($payment); $request = $this->_buildTokenRequest($payment); $response = $this->postRequest($request, $this->getConfig()); $this->_processTokenErrors($response, $payment); $order = $payment->getOrder(); $order->setCanSendNewEmailFlag(false); $stateObject->setState(\Magento\Sales\Model\Order::STATE_PENDING_PAYMENT); $stateObject->setStatus('pending_payment'); $stateObject->setIsNotified(false); break; default: break; } }
/** * Processes successful authorize/clone result * * @param \Magento\Framework\DataObject $payment * @param \Braintree_Result_Successful $result * @param float $amount * @return \Magento\Framework\DataObject */ protected function processSuccessResult(\Magento\Framework\DataObject $payment, \Braintree_Result_Successful $result, $amount) { $additionalInformation = $this->getExtraTransactionInformation($result->transaction); $payment->setStatus(self::STATUS_APPROVED)->setCcTransId($result->transaction->id)->setLastTransId($result->transaction->id)->setTransactionId($result->transaction->id)->setIsTransactionClosed(false)->setAdditionalInformation($additionalInformation)->setAmount($amount)->setShouldCloseParentTransaction(false); return $payment; }
/** * Instantiate state and set it to state object * * @param string $paymentAction * @param \Magento\Framework\DataObject $stateObject * @return void */ public function initialize($paymentAction, $stateObject) { switch ($paymentAction) { case \Magento\Paypal\Model\Config::PAYMENT_ACTION_AUTH: case \Magento\Paypal\Model\Config::PAYMENT_ACTION_SALE: $payment = $this->getInfoInstance(); $order = $payment->getOrder(); $order->setCanSendNewEmailFlag(false); $payment->setAmountAuthorized($order->getTotalDue()); $payment->setBaseAmountAuthorized($order->getBaseTotalDue()); $this->_setPaymentFormUrl($payment); $stateObject->setState(\Magento\Sales\Model\Order::STATE_PENDING_PAYMENT); $stateObject->setStatus('pending_payment'); $stateObject->setIsNotified(false); break; default: break; } }
/** * Processes successful authorize/clone result * * @param \Magento\Framework\DataObject $payment * @param \Braintree_Result_Successful $result * @param string $amount * @return \Magento\Framework\DataObject */ protected function processSuccessResult(\Magento\Framework\DataObject $payment, \Braintree_Result_Successful $result, $amount) { /** @var \Magento\Sales\Model\Order\Payment $payment */ $payment->setStatus(self::STATUS_APPROVED)->setCcTransId($result->transaction->id)->setLastTransId($result->transaction->id)->setTransactionId($result->transaction->id)->setIsTransactionClosed(false)->setCcLast4($result->transaction->creditCardDetails->last4)->setAdditionalInformation($this->getExtraTransactionInformation($result->transaction))->setAmount($amount)->setShouldCloseParentTransaction(false); if ($this->isFinalCapture($payment->getParentId(), $amount)) { $payment->setShouldCloseParentTransaction(true); } if (isset($result->transaction->creditCard['token']) && $result->transaction->creditCard['token']) { $payment->setTransactionAdditionalInfo('token', $result->transaction->creditCard['token']); } return $payment; }