/** * It sets card`s data into additional information of payment model * * @param \Magento\Framework\Object $response * @param \Magento\Sales\Model\Order\Payment $payment * @return string */ protected function _registerCard(\Magento\Framework\Object $response, \Magento\Sales\Model\Order\Payment $payment) { $cardsStorage = $this->getCardsStorage($payment); $card = $cardsStorage->registerCard(); $card->setRequestedAmount($response->getRequestedAmount())->setBalanceOnCard($response->getBalanceOnCard())->setLastTransId($response->getTransactionId())->setProcessedAmount($response->getAmount())->setCcType($payment->getCcType())->setCcOwner($payment->getCcOwner())->setCcLast4($payment->getCcLast4())->setCcExpMonth($payment->getCcExpMonth())->setCcExpYear($payment->getCcExpYear())->setCcSsIssue($payment->getCcSsIssue())->setCcSsStartMonth($payment->getCcSsStartMonth())->setCcSsStartYear($payment->getCcSsStartYear()); $cardsStorage->updateCard($card); $this->_clearAssignedData($payment); return $card; }
/** * Call centinel api authentication method * * @param \Magento\Framework\Object $data * @return \Magento\Framework\Object */ public function callAuthentication($data) { $result = new \Magento\Framework\Object(); $clientResponse = $this->_call('cmpi_authenticate', ['TransactionId' => $data->getTransactionId(), 'PAResPayload' => $data->getPaResPayload()]); $result->setErrorNo($clientResponse->getValue('ErrorNo')); $result->setErrorDesc($clientResponse->getValue('ErrorDesc')); $result->setPaResStatus($clientResponse->getValue('PAResStatus')); $result->setSignatureVerification($clientResponse->getValue('SignatureVerification')); $result->setCavv($clientResponse->getValue('Cavv')); $result->setEciFlag($clientResponse->getValue('EciFlag')); $result->setXid($clientResponse->getValue('Xid')); return $result; }
/** * Process authenticate validation * * @param \Magento\Framework\Object $data * @return void * @throws \Exception */ public function authenticate($data) { $validationState = $this->_getValidationState(); if (!$validationState || $data->getTransactionId() != $validationState->getLookupTransactionId()) { throw new \Exception('Authentication impossible: transaction id or validation state is wrong.'); } $api = $this->_getApi(); $result = $api->callAuthentication($data); $validationState->setAuthenticateResult($result); if (!$validationState->isAuthenticateSuccessful()) { $this->reset(); } }