/** * @param Payone_TransactionStatus_Request_Interface $request * @return bool * @throws Payone_TransactionStatus_Exception_MissmatchingKeys */ public function validateRequest(Payone_TransactionStatus_Request_Interface $request) { if ($request->getKey() !== $this->getKey()) { throw new Payone_TransactionStatus_Exception_MissmatchingKeys(); } return true; }
/** * @param Payone_TransactionStatus_Request_Interface $request * @param Payone_TransactionStatus_Response_Interface $response * @return boolean */ public function save(Payone_TransactionStatus_Request_Interface $request, Payone_TransactionStatus_Response_Interface $response) { $factory = $this->getFactory(); $domainObject = $factory->getModelTransactionStatus(); /* map request to domain object */ $data = $request->toArray(); // UTF-8 encoding, PAYONE sends ISO-encoded TransactionStatus, we want to preserve special characters (e.g. Umlauts in clearing parameters) foreach ($data as $key => $value) { $data[$key] = utf8_encode($value); } $domainObject->setData($data); $domainObject->save(); }
/** * @param Exception $e * @param null|Payone_TransactionStatus_Request_Interface $request */ public function protocolException(Exception $e, Payone_TransactionStatus_Request_Interface $request = null) { if ($request !== null) { $this->getServiceApplyFilters()->apply($request->toArray()); } foreach ($this->loggers as $key => $logger) { /** @var $logger Payone_Protocol_Logger_Interface */ $logger->log(get_class($e) . ' ' . $e->getMessage()); if ($request !== null) { $requestAsString = $request->__toString(); $logger->log($requestAsString, Payone_Protocol_Logger_Interface::LEVEL_ERROR); } } }
/** * @param Payone_TransactionStatus_Request_Interface $request * @param null|Payone_TransactionStatus_Response_Interface $response */ public function protocol(Payone_TransactionStatus_Request_Interface $request, Payone_TransactionStatus_Response_Interface $response = null) { foreach ($this->loggers as $key => $logger) { /** @var $logger Payone_Protocol_Logger_Interface */ $requestAsString = $request->__toString(); $responseAsString = $response->__toString(); $logger->log($requestAsString, Payone_Protocol_Logger_Interface::LEVEL_INFO); $logger->log($responseAsString, Payone_Protocol_Logger_Interface::LEVEL_INFO); } foreach ($this->repositories as $key => $repository) { /** @var $repository Payone_TransactionStatus_Persistence_Interface */ $repository->save($request, $response); } }