diff --git a/application/Bootstrap.php b/application/Bootstrap.php index eb3e0a9..268c8c0 100644 --- a/application/Bootstrap.php +++ b/application/Bootstrap.php @@ -90,4 +90,19 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap ); Zend_Db_Table_Abstract::setDefaultMetadataCache($cache); } + + protected function _initRouter() + { + $this->bootstrap('frontController'); + $front = $this->getResource('frontController'); + $router = $front->getRouter(); + + //Route pour prestations + $route = new Zend_Controller_Router_Route('/id/:client/*', array( + 'controller' => 'presta', + 'action' => 'index', + )); + $router->addRoute('presta', $route); + return $router; + } } \ No newline at end of file diff --git a/application/configs/application.ini b/application/configs/application.ini index cb32d73..0a89cad 100644 --- a/application/configs/application.ini +++ b/application/configs/application.ini @@ -12,6 +12,7 @@ resources.layout.layoutPath = APPLICATION_PATH "/views" resources.view.basePath = APPLICATION_PATH "/views" autoloaderNamespaces[] = "Application_" autoloaderNamespaces[] = "Scores_" +autoloaderNamespaces[] = "Paybox_" ; Scores configuration profil.server.name = local diff --git a/application/controllers/PrestaController.php b/application/controllers/PrestaController.php index 8e4055b..b47eec8 100644 --- a/application/controllers/PrestaController.php +++ b/application/controllers/PrestaController.php @@ -1,5 +1,23 @@ getRequest(); + + $id = $request->getParam('client'); + + switch($id) { + //Prestation KOMPASS, livraison rapport pdf + case '144': + $siren = $request->getParam('siren'); + $url = '/report/index/siren/'.$siren; + $this->redirect($url); + break; + default: + //Erreur + break; + } + + } } \ No newline at end of file diff --git a/application/controllers/ReportController.php b/application/controllers/ReportController.php index 1b7eefb..2ba85e9 100644 --- a/application/controllers/ReportController.php +++ b/application/controllers/ReportController.php @@ -49,6 +49,12 @@ class ReportController extends Zend_Controller_Action 'siren'=>$response->Siren )); + //Session + $session->CmdSiren = $response->Siren; + $session->CmdRaisonSociale = $response->Nom; + $session->CmdAdresseL1 = $response->Adresse; + $session->CmdAdresseL2 = $response->CP . ' ' . $response->Ville;; + //Nombre $response = $ws->getLiens($siren); if ( $response !== false ) { @@ -92,7 +98,7 @@ class ReportController extends Zend_Controller_Action 'controller' => 'report', 'action' => 'index', 'siren' => $siren, - )); + ), null, true); //Affichage du formulaires $form = new Application_Form_Command(); @@ -118,19 +124,24 @@ class ReportController extends Zend_Controller_Action $commandM = new Application_Model_Command(); try { $commandM->insert($form->getValues()); + //Passage à la page suivante $url = $this->view->url(array( 'controller'=>'report', - 'action'=>'deliver', + 'action'=>'paiement', //deliver 'id' => $form->getValue('cmdId'), - )); + ), null, true); $this->redirect($url); + + //=> Aller à la page de paiement + + } catch (Zend_Db_Adapter_Exception $e) { $this->view->msg = "Impossible de passer la commande."; } } - } else { + } /*else { //Write the state to the session $cmdState = 1; @@ -139,15 +150,19 @@ class ReportController extends Zend_Controller_Action $this->redirect($url); } else { $session->state = $cmdState; + $this->view->Siren = $session->CmdSiren; + $this->view->RaisonSociale = $session->CmdRaisonSociale; + $this->view->AdresseL1 = $session->CmdAdresseL1; + $this->view->AdresseL2 = $session->CmdAdresseL2; } if ( !isset($session->CmdID) || empty($session->CmdID) ) { //Get the report if (intval($siren)>100) { - $report = new Scores_Partner_Report('indiscore3', $siren, 'mricois', 'ju2loh6o'); - $html = $report->getContent(); - + //$report = new Scores_Partner_Report('indiscore3', $siren, 'mricois', 'ju2loh6o'); + //$html = $report->getContent(); + $html = 'blabla'; if ( $html !== false ) { $c = Zend_Registry::get('config'); @@ -169,11 +184,160 @@ class ReportController extends Zend_Controller_Action } - } + }*/ + + //Test + $session = new Zend_Session_Namespace('Cmd'); + $this->view->CmdID = 'test'; + $this->view->Siren = $session->CmdSiren; + $this->view->RaisonSociale = $session->CmdRaisonSociale; + $this->view->AdresseL1 = $session->CmdAdresseL1; + $this->view->AdresseL2 = $session->CmdAdresseL2; $this->view->form = $form; $this->view->siren = $siren; + } + + /** + * Sélection du mode de paiement + */ + public function paiementAction() + { + $this->_helper->layout()->disableLayout(); + + $request = $this->getRequest(); + + //Commande ID + $cmdId = $request->getParam('id'); + + //Write the state to the session + $cmdState = 4; + + $session = new Zend_Session_Namespace('Cmd'); + /*if ( $session->state > $cmdState || $session->CmdID != $cmdId ) { + $url = $this->view->url(array( + 'controller' => 'report', + 'action' => 'index', + 'siren' => $session->CmdSiren, + ), null, true); + $this->redirect($url); + } else { + $session->state = $cmdState; + }*/ + + $this->view->CmdID = $session->CmdID; + + $cmdId = '525ffc4501a4d'; + $this->view->CmdID = $cmdId; + $this->view->Siren = $session->CmdSiren; + $this->view->RaisonSociale = $session->CmdRaisonSociale; + $this->view->AdresseL1 = $session->CmdAdresseL1; + $this->view->AdresseL2 = $session->CmdAdresseL2; + + //Lire la bdd + $commandM = new Application_Model_Command(); + $row = $commandM->fetchRow('cmdId="'.$cmdId.'"'); + if ($row !== null) { + + //Paybox : Liste des types de paiements possible + $paybox = new Paybox_System(); + $paybox->setUrlPaiement(); + $paybox->setEmail($row->email); + $paybox->setReference($cmdId); + $paybox->setMontant(10.00); + $paybox->setUrlParameters(); + $paybox->calculateHMAC(); + + //Set PBX_EFFECTUE, PBX_REFUSE, PBX_ANNULE, PBX_ATTENTE, PBX_REPONDRE_A + + $this->view->PayboxUrl = $paybox->getFormUrl(); + $this->view->PayboxValues = $paybox->getFormParameters(); + + } + + + + } + + /** + * + */ + public function retourAction() + { + $this->_helper->layout()->disableLayout(); + + $request = $this->getRequest(); + + //PBX_RETOUR + /* + * eta:E + * ref:R => Référence commande (précisée dans PBX_CMD) + * auto:A => numéro d'Autorisation (numéro remis par le centre d’autorisation) + * type:P => Type de Paiement retenu (cf. PBX_TYPEPAIEMENT) + * transaction:S => Numéro de TranSaction Paybox + * pays:Y => Code paYs de la banque émettrice de la carte. Format : ISO 3166 (alphabétique) + * sign:K => Signature sur les variables de l’URL. Format : url-encodé + */ + + /* Code retour eta:E +00000 +Opération réussie. +00001 +La connexion au centre d’autorisation a échoué ou une erreur interne est survenue. Dans ce cas, il est souhaitable de faire une tentative sur le site secondaire : tpeweb1.paybox.com. +001xx +Paiement refusé par le centre d’autorisation [voir §12.1 Codes réponses du centre d’autorisation]. +En cas d’autorisation de la transaction par le centre d’autorisation de la banque ou de l’établissement financier privatif, le code erreur “00100” sera en fait remplacé directement par “00000”. +=> Liste des codes erreurs + +00003 +Erreur Paybox. Dans ce cas, il est souhaitable de faire une tentative sur le site secondaire FQDN tpeweb1.paybox.com. +00004 +Numéro de porteur ou cryptogramme visuel invalide. +00006 +Accès refusé ou site/rang/identifiant incorrect. +00008 +Date de fin de validité incorrecte. +00009 +Erreur de création d’un abonnement. +00010 +Devise inconnue. +00011 +Montant incorrect. +00015 +Paiement déjà effectué. +00016 +Abonné déjà existant (inscription nouvel abonné). Valeur ‘U’ de la variable PBX_RETOUR. +00021 +Carte non autorisée. +00029 +Carte non conforme. Code erreur renvoyé lors de la documentation de la variable « PBX_EMPREINTE ». +00030 +Temps d’attente > 15 mn par l’internaute/acheteur au niveau de la page de paiements. +00031 +Réservé +00032 +Réservé +00033 +Code pays de l’adresse IP du navigateur de l’acheteur non autorisé. +00040 +Opération sans authentification 3-DSecure, bloquée par le filtre. +99999 +Opération en attente de validation par l’émetteur du moyen de paiement. + */ + + + //Get cmd id + $eta = $request->getParam('eta'); + + + + //Request PAYBOX to validate the payment + //Valider les bons de commande + + + + } @@ -183,6 +347,10 @@ class ReportController extends Zend_Controller_Action $request = $this->getRequest(); + //Get the response from PAYBOX + + + $c = Zend_Registry::get('config'); $pathCmd = $c->profil->path->data; @@ -194,6 +362,11 @@ class ReportController extends Zend_Controller_Action $session = new Zend_Session_Namespace('Cmd'); if ( $session->state > $cmdState || $session->CmdID != $cmdId ) { + $url = $this->view->url(array( + 'controller' => 'report', + 'action' => 'index', + 'siren' => $session->CmdSiren, + ), null, true); $this->redirect($url); } else { $session->state = $cmdState; diff --git a/application/views/scripts/presta/index.phtml b/application/views/scripts/presta/index.phtml new file mode 100644 index 0000000..c0ed4e0 --- /dev/null +++ b/application/views/scripts/presta/index.phtml @@ -0,0 +1 @@ +
* Champs obligatoires
- - @@ -153,5 +181,4 @@ inlineScript(); ?>