/** * Retorna o adaptador de sessao * @param string $name * @return SessionContainer */ public function getSessionAdapter($name = 'Default') { if (!isset($_SESSION[$name])) { $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($this->globalConfig['session']); $sessionStorage = new \Zend\Session\Storage\SessionArrayStorage(); $sessionManager = new SessionManager(); $sessionManager->rememberMe($this->globalConfig['session']['remember_me_seconds']); $sessionManager->forgetMe(); $sessionManager->setConfig($sessionConfig); $sessionManager->setStorage($sessionStorage); $sessionNamespace = new SessionContainer($name, $sessionManager); $sessionNamespace->setExpirationSeconds(3600); if (!isset($sessionNamespace->init)) { $request = new \Zend\Http\PhpEnvironment\Request(); $sessionNamespace->init = 1; $sessionNamespace->remoteAddr = $request->getServer('REMOTE_ADDR'); $sessionNamespace->httpUserAgent = $request->getServer('HTTP_USER_AGENT'); /* $chain = $sessionManager->getValidatorChain(); $validatorUserAgent = new \Zend\Session\Validator\HttpUserAgent($sessionNamespace->httpUserAgent); $chain->attach('session.validate', array($validatorUserAgent, 'isValid')); $validatorAddr = new \Zend\Session\Validator\RemoteAddr($sessionNamespace->remoteAddr); $chain->attach('session.validate', array($validatorAddr, 'isValid')); $sessionManager->setValidatorChain($chain); * */ } $sessionNamespace->setDefaultManager($sessionManager); } else { $sessionNamespace = new SessionContainer($name); $sessionNamespace->setExpirationSeconds(3600); } $this->sessionAdapter = $sessionNamespace; return $sessionNamespace; }
public function singleRecordAction() { $retour = array(); $iso = $this->params('iso3166'); $request = new \Zend\Http\PhpEnvironment\Request(); $methode = $request->getServer('REQUEST_METHOD'); if (isset($iso)) { $retour["search"] = $iso; $sm = $this->getServiceLocator(); $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new \Zend\Db\ResultSet\ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Country()); $tableGateWay = new TableGateway('country', $dbAdapter, null, $resultSetPrototype); $countryTable = new CountryTable($tableGateWay); switch ($methode) { case "GET": $country = $countryTable->getCountryWithSearch($iso); if (isset($country)) { $retour[] = $country->toArray(); } else { $retour["error"] = "Pas de resultat"; } break; case "PATCH": $country = $countryTable->getCountryWithSearch($iso); if (isset($country)) { $postContent = $request->getContent(); if (trim($postContent)) { //$retour["content"] = json_decode($postContent); $formReceivedData = new Form\Register(); $formReceivedData->setData(json_decode($postContent, true)); //$retour["insert"] = json_decode($postContent,true); if ($formReceivedData->isValid()) { $newCountry = new Country(); $newCountry->exchangeArray(json_decode($postContent, true)); $countryTable->saveCountry($newCountry); $retour["success"] = "Donnees valides"; } else { $retour["error"] = "Donnees recues non valides"; } } else { $retour["error"] = "Pas de donnees recues"; } } else { $retour["error"] = "Pays non trouve"; } break; case "DELETE": $country = $countryTable->getCountryWithSearch($iso); if (isset($country)) { $countryTable->deleteCountryWithSearch($iso); $retour["success"] = "Suppression reussie"; } else { $retour["error"] = "Pays non trouve"; } break; default: $retour["error"] = "405 : Forbidden method"; break; } } else { $retour["error"] = "Pas d'iso3166 specifie"; } return new JsonModel($retour); }
public function ccCheckAction() { $response = $this->getResponse(); $response->setStatusCode(200); $response->setContent("Thank you"); $config = $this->getServiceLocator()->get('Config'); $sec_key = $config['ERS\\iPayment']['sec_key']; $allowed_ips = array('212.227.34.218', '212.227.34.219', '212.227.34.220'); $logger = $this->getServiceLocator()->get('Logger'); $request = new \Zend\Http\PhpEnvironment\Request(); $ipmatch = false; if (in_array($request->getServer('REMOTE_ADDR'), $allowed_ips)) { $ipmatch = true; } else { $logger->info('unauthorized hidden trigger from: ' . $request->getServer('REMOTE_ADDR')); return $response; } $post_param = $this->params()->fromPost(); $logger->info('$_POST:'); $logger->info($post_param); $return_checksum = array(); if (isset($post_param["trxuser_id"])) { $return_checksum[] = $post_param["trxuser_id"]; } if (isset($post_param["trx_amount"])) { $return_checksum[] = $post_param["trx_amount"]; } if (isset($post_param["trx_currency"])) { $return_checksum[] = $post_param["trx_currency"]; } if (isset($post_param["ret_authcode"])) { $return_checksum[] = $post_param["ret_authcode"]; } if (isset($post_param["ret_trx_number"])) { $return_checksum[] = $post_param["ret_trx_number"]; } $return_checksum[] = $sec_key; $logger->info($return_checksum); $logger->info('ret_param: ' . $post_param["ret_param_checksum"]); $logger->info('hash : ' . md5(implode($return_checksum))); if ($post_param["ret_param_checksum"] != md5(implode($return_checksum))) { // Error because hash do not match! $logger->emerg('Unable to finish payment, checksums do not match.'); return $response; #exit; } $hashkey = $this->params()->fromRoute('hashkey', ''); if ($hashkey == '') { $logger->warn('no hashkey given in route'); return $response; } $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $order = $em->getRepository("ErsBase\\Entity\\Order")->findOneBy(array('hashkey' => $hashkey)); if ($order == null) { $logger->warn('unable to find order with hashkey: ' . $hashkey); return $response; } $order->setPaymentStatus('paid'); foreach ($order->getItems() as $item) { $item->setStatus('paid'); $em->persist($item); } $orderStatus = new Entity\OrderStatus(); $orderStatus->setOrder($order); $orderStatus->setValue('paid'); $order->addOrderStatus($orderStatus); $em->persist($order); $em->persist($orderStatus); $em->flush(); return $response; }