container->get('net15.payment.mode.manager')->getByPublicKey($publicKey); // We recover the transaction publicKey from the session $transaction = $this->container->get('net15.transaction.manager')->getByPublicKey($request->getSession()->get('transactionPK')); $transaction = $this->container->get('net15.transaction.manager')->addPaymentMode($transaction,$paymentMode); return $this->render('@Payment/Default/payment.details.html.twig',[ 'transaction'=>$transaction, 'paymentMode'=>$paymentMode, 'rout'=>'api_3xssfrais_tunnel' ]); } /** * @param Request $request * @return Response */ public function tunnelAction(Request $request){ $transaction = $this->container->get('net15.transaction.manager')->getByPublicKey($request->getSession()->get('transactionPK')); $args = $this->container->get('net15.paybox.payment_in_installments_manager')->init($transaction); return $this->render('@Payment/paybox/paybox.payment.in.installment.html.twig', $args); } /** * @param string $publicKey * @param Request $request * @return Response */ public function ipnAction(string $publicKey, Request $request){ $transaction = $this->container->get('net15.transaction.manager')->getByPublicKey($publicKey); $error = $request->query->get ('erreur'); $amount = $request->query->get ( "montant" ); if($amount > 0) $amount /= 100; // $id_transaction = $request->query->get ( "auto" ); $id_transaction = 'XXXXXX'; // gestion des codes erreur $status = false; switch ($error) { case "00000" : $error = "Opération réussie"; $status = true; break; case "00001" : $error = "La connexion au centre d’autorisation a échoué ou une erreur interne est survenue"; break; case "00003" : $error = "Erreur Paybox"; break; case "00004" : $error = "Numéro de porteur ou cryptogramme visuel invalide"; break; case "00006" : $error = "Accès refusé ou site/rang/identifiant incorrect"; break; case "00008" : $error = "Date de fin de validité incorrecte"; break; case "00009" : $error = "Erreur de création d’un abonnement"; break; case "00010" : $error = "Devise inconnue"; break; case "00011" : $error = "Montant incorrect"; break; case "00015" : $error = "Paiement déjà effectué"; break; case "00016" : $error = "Abonné déjà existant (inscription nouvel abonné)"; break; case "00021" : $error = "Carte non autorisée"; break; case "00029" : $error = "Carte non conforme. Code erreur renvoyé lors de la documentation de la variable PBX_EMPREINTE"; break; case "00030" : $error = "Temps d’attente > 15 mn par l’internaute/acheteur au niveau de la page de paiements"; break; case in_array($error,["00031", "00032"]) : $error = "Réservé"; break; // case "00032": // $error = "Réservé"; // break; case "00033" : $error = "Code pays de l’adresse IP du navigateur de l’acheteur non autorisé"; break; case "00040" : $error = "Opération sans authentification 3-DSecure, bloquée par le filtre"; break; case "99999" : $error = "Opération en attente de validation par l’émetteur du moyen de paiement"; break; } $this->container->get('net15.paybox.payment_in_installments_manager')->ipn($transaction, $id_transaction, $error, $amount,$status); return new Response(''); } /** * @return Response */ public function SuccessAction(){ return $this->render('@Payment/Default/payment.success.response.html.twig'); } /** * @return Response */ public function cancelAction(){ return $this->render('@Payment/Default/payment.cancel.response.html.twig'); } }