/** * Validate data * * @param Object $response * @return void * @throws LocalizedException */ public function validate(DataObject $response) { switch ($response->getResult()) { case Payflowpro::RESPONSE_CODE_APPROVED: case Payflowpro::RESPONSE_CODE_FRAUDSERVICE_FILTER: foreach ($this->validators as $validator) { if ($validator->validate($response) === false) { throw new LocalizedException(__('Transaction has been declined')); } } break; case Payflowpro::RESPONSE_CODE_INVALID_AMOUNT: break; default: throw new LocalizedException(__('Transaction has been declined')); } }
/** * If response is failed throw exception * Set token data in payment object * * @param \Magento\Framework\DataObject $response * @param \Magento\Sales\Model\Order\Payment $payment * @return void * @throws \Magento\Framework\Exception\LocalizedException */ protected function _processTokenErrors($response, $payment) { if (!$response->getSecuretoken() && $response->getResult() != self::RESPONSE_CODE_APPROVED && $response->getResult() != self::RESPONSE_CODE_FRAUDSERVICE_FILTER) { throw new \Magento\Framework\Exception\LocalizedException(__($response->getRespmsg())); } else { $payment->setAdditionalInformation('secure_token_id', $response->getSecuretokenid())->setAdditionalInformation('secure_token', $response->getSecuretoken()); } }
/** * Validate data * @param DataObject $response * @return bool */ public function validate(DataObject $response) { return (bool) $response->getSecuretoken() && is_numeric($response->getResult()) && !in_array($response->getResult(), [static::ST_ALREADY_USED, static::ST_TRANSACTION_IN_PROCESS, static::ST_EXPIRED]); }