src/Controller/SouscriptionController.php line 2602
<?phpnamespace App\Controller;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\Request;use Doctrine\ORM\EntityManagerInterface;use DateTimeImmutable;use Date;use Symfony\Component\HttpFoundation\Session\SessionInterface;use App\Entity\InfoSouscription;use App\Entity\PoliceAbonnement;use App\Entity\Client;use App\Entity\Assurance;use App\Entity\Puissance;use App\Entity\Energie;use App\Entity\Duree;use App\Entity\DureeVoyage;use App\Entity\Marque;use App\Entity\TypeClient;use App\Entity\TypeOperation;use App\Entity\AssuranceVoyage;use App\Entity\AssuranceHabitation;use App\Entity\Classe;use App\Entity\ZoneVoyage;use App\Entity\Ville;use App\Entity\Tarif;use App\Entity\TarifVoyage;use App\Entity\TarifHabitation;use App\Entity\Formule;use App\Entity\Livraison;use App\Entity\Log;use App\Entity\Paiement;use App\Entity\StatutPaiement;use App\Entity\Zone;use App\Repository\VilleRepository;use App\Repository\AssuranceRepository;use App\Repository\PuissanceRepository;use App\Repository\TarifRepository;use App\Service\FileUploader;use Symfony\Component\HttpFoundation\RedirectResponse;use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;use Symfony\Component\Validator\Validator\ValidatorInterface;class SouscriptionController extends AbstractController{#[Route('/souscription/assurances/automobile', name: 'app_souscription_auto')]public function indexAuto(EntityManagerInterface $entityManager,Request $request,SessionInterface $session,UserPasswordHasherInterface $userPasswordHasher,AssuranceRepository $AssuranceRepository,FileUploader $uploader): Response {$today = date("Y-m-d");$energies = $entityManager->getRepository(Energie::class)->findBy(['statut' => '1']);$marques = $entityManager->getRepository(Marque::class)->findBy(['statut' => '1']);$energiesData = $energies;$durees = $entityManager->getRepository(Duree::class)->findBy(['statut' => '1']);$dureesData = $durees;if ($request->request->count() > 0) {$nom = trim($request->request->get("nom"));$session->set('nom', $nom);$prenom = trim($request->request->get("prenom"));$session->set('prenom', $prenom);$telephone = trim($request->request->get("phone"));$session->set('telephone', $telephone);$usage = trim($request->request->get("usage"));$session->set('usage', $usage);$marque = trim($request->request->get("marque"));$session->set('marque', $marque);$modele = trim($request->request->get("modele"));$session->set('modele', $modele);$plaque = trim($request->request->get("plaque"));$session->set('plaque', $plaque);$puissance = trim($request->request->get("puissance"));$session->set('puissance', $puissance);$energie = trim($request->request->get("energie"));$session->set('energie', $energie);$place = trim($request->request->get("place"));$session->set('place', $place);$duree = trim($request->request->get("duree"));$session->set('duree', $duree);$date_effet = trim($request->request->get("date_effet"));$session->set('date_effet', $date_effet);// $livraison = $request->request->get("livraison");// $session->set('livraison', $livraison);// $address = $request->request->get("address");// $session->set('address', $address);$option = $request->request->get("option");$session->set('option', $option);$avance_recours = $request->request->get("avance_recours");$session->set('avance_recours', $avance_recours);$carteGrise = $request->files->get("carteGrise");if ($carteGrise) {}else {# code...$this->addFlash('noTarif', 'Veuillez rensignez la carte grise.');$iduser = null;$idclient = null;$action = "Souscription Automobile";$msg_send = "Controls champs obligatoires";$msg_get = "Veuillez rensignez la carte grise";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_auto');}$mat = "Document";$array = array("png", "PNG","jpg","JPG","jpeg","JPEG");$zone = 1;$classe = 1;if ($usage == 1) {$code = 101;} else if ($usage == 2) {$code = 105;}$session->set('code', $code);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/clientCaren");curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, '{"nom" : "' . $nom . '","prenom" : "' . $prenom . '","telephone" : "' . $telephone . '"}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$clientCaren = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);$ener = "";if ($energie == 1) {$ener = "E";} else {$ener = "D";}$interval_puissance = $entityManager->getRepository(Puissance::class)->findPuissance((int)$puissance, $ener, $code);$energie = $entityManager->getRepository(Energie::class)->find($energie);$zone = $entityManager->getRepository(Zone::class)->find($zone);$classe = $entityManager->getRepository(Classe::class)->find($classe);$duree = $entityManager->getRepository(Duree::class)->find($duree);// dd($interval_puissance);// dd($energie, $zone, $classe, $duree, $interval_puissance->getId(), $code);if($energie == null || $zone == null || $classe == null || $duree == null || $carteGrise == null){$this->addFlash('noTarif', 'Veuillez rensignez tous les champs obligatoires.');$iduser = null;$idclient = null;$action = "Souscription Automobile";$msg_send = "Controls champs obligatoires";$msg_get = "Veuillez rensignez tous les champs obligatoires";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_auto');}if ($interval_puissance != null) {$tarif = $entityManager->getRepository(Tarif::class)->findOneBy(['energie' => $energie->getId(),'zone' => $zone->getId(),'classe' => $classe->getId(),'duree' => $duree->getId(),'puissance' => $interval_puissance->getId(),'code' => $code,'statut' => 1]);} else {$this->addFlash('noTarif', 'Aucune tarification trouvée, veuillez rééssayer.');$iduser = null;$idclient = null;$action = "Souscription Automobile";$msg_send = "Recuperation tarifs";$msg_get = "Aucune tarification trouvée, veuillez rééssayer.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_auto');}if ($tarif != null) {// $result = $tarif['result'];// $montant = $result['montant'];// dd($result,$montant);$clientAssur = $entityManager->getRepository(Client::class)->findOneBy(['telephone' => $telephone, 'idTypeClient' => 2]);if($clientAssur == null ){$this->addFlash('noTarif', 'Veuillez reprendre l operation SVP');$iduser = null;$idclient = null;$action = "Souscription Automobile";$msg_send = "Controls sur le client";$msg_get = "Veuillez reprendre l operation SVP";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_auto');}$lastId =$AssuranceRepository->last_assur($code);if ($lastId == null){$numero= '00001';$num_police = $code.$numero;}else{$num_police = $lastId->getPoliceAbonnement()->getNumeroPolice() + 1;}// $num_police = random_int(1000, 99999);// dd($num_police);$police = new PoliceAbonnement();$police->setIdClient($clientAssur)->setNumeroPolice($num_police)->setNumeroPoliceZamoha($num_police)->setCreatedAt(new \DateTimeImmutable('now'))->setStatut(1);// dd($police);$entityManager->persist($police);// $tarifAssur = $entityManager->getRepository(Tarif::class)->findOneBy(['id' => $result['id_tarif']]);$tarifAssur = $tarif;$type_operation = $entityManager->getRepository(TypeOperation::class)->find(1);$reference = random_int(10000, 999999);$retour = "Le retour de l'API CAREN";$GARA__SC = 1;$montant_total = 0;$dateEffet = "";$dateEcheance = "";if ($option == 1 && $avance_recours == 1) {$montant_total = $tarifAssur->getTtcAvrIc2();} else if ($option == 1 && $avance_recours == 2) {$montant_total = $tarifAssur->getTtcIc2();} else if ($option == 2 && $avance_recours == 1) {$montant_total = $tarifAssur->getTtcAvr();} else {$montant_total = $tarifAssur->getTtcBasic();}if ($date_effet < $today) {$this->addFlash('noTarif', 'La date effet ne peut etre inférieur à la date du jour, veuillez rééssayer saisir une date valide.');$iduser = null;$idclient = null;$action = "Souscription Automobile";$msg_send = "Controls sur les Date tarifs";$msg_get = "La date effet ne peut etre inférieur à la date du jour, veuillez rééssayer saisir une date valide.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_auto');} else {$nbrJour = (int)$duree->getLibelle() * 30;// Exemple : durée en mois$nbMois = (int)$duree->getLibelle(); // ex: 6 pour 6 mois// Création de la date d'effetif ($date_effet == $today) {$dateEffet = new \DateTimeImmutable(); // maintenant} else {$dateEffet = \DateTimeImmutable::createFromFormat('Y-m-d', $date_effet)->setTime(0, 0, 0);}// Calcul de la date d’échéance// $dateEcheance = $dateEffet->add(new \DateInterval("P{$nbMois}M"))->setTime(23, 59, 59);$dateEcheance = (clone $dateEffet)->add(new \DateInterval("P{$nbMois}M"))->sub(new \DateInterval("P1D"))->setTime(23, 59, 59);// dd($nbrJour);// $dateEchean = date('Y-m-d', strtotime($date_effet . '' . (int)$nbrJour . ' day'));// $dateEcheance = (\DateTimeImmutable::createFromFormat('Y-m-d H:s:i', $dateEchean . '23:59:59'));// if ($date_effet == $today) {// $day = date('Y-m-d H:s:i');// $dateEffet = (\DateTimeImmutable::createFromFormat('Y-m-d H:s:i', $day));// } else {// $dateEffet = (\DateTimeImmutable::createFromFormat('Y-m-d H:s:i', $date_effet . '00:01:00'));// }}$souscription = new Assurance();$souscription->setPoliceAbonnement($police)->setIdClient($clientAssur)->setNomBeneficiaire($nom)->setPrenomBeneficiaire($prenom)->setTelephoneBeneficiaire($telephone)->setCanal("WEB")->setTarif($tarifAssur)->setTypeOperation($type_operation)->setReference($reference)->setMontantAssurance($montant_total)->setMontantTotal($montant_total)->setRetourApi($retour)->setNUMEENCA("000000000000")->setNUMEIMMA($plaque)->setMARQVEHI($marque)->setDATEFFE($dateEffet)->setDATEECHE($dateEcheance)->setNOMBPLAC($place)->setGARASC($GARA__SC)->setNUMECHAS($plaque)->setModele($modele)->setCYLIVEHI($puissance)->setSecuriteConducteur($option)->setAvanceRecour($avance_recours)->setCreatedAt(new \DateTimeImmutable('now'))->setStatut(0);// dd($souscription, $dateEffet, $dateEcheance);$entityManager->persist($souscription);$paiement = new Paiement();$statutPaiement = $entityManager->getRepository(StatutPaiement::class)->find(1);$paiement->setMontant($souscription->getMontantTotal())->setStatut(0)->setStatutPaiement($statutPaiement)->setCreatedAt(new \DateTimeImmutable('now'));$entityManager->persist($souscription);$filename2 = $carteGrise->getClientOriginalName();$filename2 = explode('.' , $filename2);$filename2 = $mat.'carteGrise_'.$reference.'.'.$filename2[1];$extension=substr(strrchr($filename2,'.'),1);$lienDocument2 = "";if ($carteGrise->getSize() > (5 * 1024 * 1024)) {$this->addFlash('noTarif', "Le fichier ne doit pas dépasser 5 Mo");return $this->redirectToRoute('app_souscription_auto', [], Response::HTTP_SEE_OTHER);}if(in_array($extension, $array, true)){ini_set('upload_max_filesize', '10M');ini_set('post_max_size', '10M');$uploaderImag=$uploader->upload("../public/images/carteGrises", $carteGrise, $filename2);if ($uploaderImag==400) {# code...$this->addFlash('noTarif', "Veuillez recharger une image qui ne doit pas dépasser 5 Mo et en jpg ou png");return $this->redirectToRoute('app_souscription_auto', [], Response::HTTP_SEE_OTHER);}$protocol = 'https';$HTTP_HOST = $_SERVER['HTTP_HOST'];$lienDocument2 = $protocol. '://'.$HTTP_HOST.'/'.'images/carteGrises/'.$filename2;}else{$this->addFlash('noTarif', "Ce format de fichier pour l'image n'est pas accepté par le système!!");return $this->redirectToRoute('app_souscription_auto', [], Response::HTTP_SEE_OTHER);}$souscription->setCarte($lienDocument2);$entityManager->persist($paiement);$souscription->setPaiement($paiement);$entityManager->persist($souscription);$iduser = null;$idclient = null;$action = "Souscription Automobile";$msg_send = "Demande souscription";$msg_get = "Demande souscription éffectuée avec succés.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();$session->clear();return $this->redirectToRoute('app_payement_souscriptionAuto',['id'=>$souscription->getId()]);// return $this->render('souscription/payement/payementAuto.html.twig', [// 'souscription' => $souscription,// 'montant' => $montant_total,// 'montantLivraison' => 0,// 'montantTotal' => $montant_total// ]);// }} else {$this->addFlash('noTarif', 'Aucune tarification trouvée, veuillez rééssayer.');$iduser = null;$idclient = null;$action = "Souscription Automobile";$msg_send = "Recuperation tarifs";$msg_get = "Aucune tarification trouvée, veuillez rééssayer.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_auto');}// }}return $this->render('souscription/indexAuto.html.twig', ['energies' => $energiesData,'durees' => $dureesData,'marques' => $marques,'messageErr' => '','messageError' => '']);}// #[Route('/souscriptionAuto/autoPayement/{id}', name: 'app_payement_souscriptionAuto', methods: ['POST', 'GET'])]#[Route('/souscription/auto/payement/{id}', name: 'app_payement_souscriptionAuto', methods: ['POST', 'GET'])]public function payementAuto(EntityManagerInterface $entityManager, SessionInterface $session, Request $request, Assurance $assurance): Response{// if ($request->request->count() > 0 && $request->request->get("souscription") == "souscription") {if($request->request->count() >0 ){$payement = $request->request->get("payement");$telephone2 = $request->request->get("phone2");$paymentOptions = $request->request->get('paymentOptions');$operateur = $request->request->get('operateur');$phonePayment = trim($request->request->get('phonePayment'));$ipay_number = trim($request->request->get('ipay_number'));if($operateur == 2){// $phonePayment = "40410000000";$phonePayment = str_replace(" ", "", $ipay_number);}else{$phonePayment = str_replace(" ", "", $phonePayment);}$indicatif = "227";$typeOperation = 1;$idAssurance = $assurance->getId();if($assurance->getPaiement()!=null && $assurance->getPaiement()->getMoyenPaiement()!=null && $assurance->getPaiement()->getExternalId()!=null ) {$paiement = $assurance->getPaiement();$idAssurance = $assurance->getId();$external_id = $paiement->getExternalId();$typeOperation = 1;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirm/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . ',"idAssurance" : ' . (int)$idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($confirmPaiement==null) {# code...$statut = null;}else{$statut = $confirmPaiement['status'];}}else{$statut=null;}if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/get/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"msisdn" : "' . $phonePayment . '","idAssurance" : ' . (int)$idAssurance . ',"indicatif" : ' . $indicatif . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$initiationPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);// dd($initiationPaiement);if($initiationPaiement !=null){$statut = $initiationPaiement['status'];if($operateur == 2){if ($initiationPaiement['result']['status'] == "initiated") {return new RedirectResponse($initiationPaiement['result']['page_url']);// $session->set('number', 4);//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {$this->addFlash('ErreurSous', $initiationPaiement['message']);$session->set('number', 0);}}else{if ($statut == 200) {$session->set('number', 4);return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {$this->addFlash('ErreurSous', $initiationPaiement['message']);$session->set('number', 0);}}}else{$this->addFlash('ErreurSous', "Veuillez réessayer...");$session->set('number', 0);}return $this->redirectToRoute('app_payement_souscriptionAuto',['id'=>$idAssurance]);}}return $this->render('souscription/payement/payementAuto.html.twig', ['souscription' => $assurance,]);}#[Route('/assurance/paiement/ipay/{id}', name: 'details_souscriptionAutoClientError')]public function details_souscriptionAutoClientIpay(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, Assurance $assurance): Response{$this->addFlash('ErreurSous', 'Paiement non aboutie, Veuillez réessayer...');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();$idAssurance = $assurance->getId();return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);// return $this->render('souscription/payement/payementAuto.html.twig', [// 'souscription' => $assurance,// ]);}#[Route('/assurance/paiement/voyage/ipay/{id}', name: 'details_souscriptionVoyageClientError')]public function details_souscriptionVoyageClientIpay(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, AssuranceVoyage $assurance): Response{$this->addFlash('ErreurSous', 'Paiement non aboutie, Veuillez réessayer...');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription voyage";$msg_send = "paiement souscription";$msg_get = "";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();$idAssurance = $assurance->getId();return $this->redirectToRoute('details_souscriptionVoyageClient',['id'=>$idAssurance]);}#[Route('/assurance/paiement/habitation/ipay/{id}', name: 'details_souscriptionHabitationClientError')]public function details_souscriptionHabitationClientIpay(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, AssuranceHabitation $assurance): Response{$this->addFlash('ErreurSous', 'Paiement non aboutie, Veuillez réessayer...');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Habitation";$msg_send = "paiement souscription";$msg_get = "";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();$idAssurance = $assurance->getId();return $this->redirectToRoute('details_souscriptionHabitationClient',['id'=>$idAssurance]);}#[Route('/details/souscription/auto/client/{id}', name: 'details_souscriptionAutoClient')]public function details_souscriptionAutoClient(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, Assurance $assurance): Response{$idAssurance = $assurance->getId();if($assurance != null && $assurance->getPaiement()!=null && ($assurance->getPaiement()->getStatutPaiement()->getId() == 2 or $assurance->getPaiement()->getStatutPaiement()->getId() == 3 )) {$session->set('number', 0);return $this->redirectToRoute('app_payement_souscriptionAuto',['id'=>$idAssurance]);// return $this->render('souscription/payement/confirmPayementAuto.html.twig', [// 'souscription' => $assurance,// ]);// return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}else {if ($session->get('number') == 4 ) {$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->render('souscription/payement/confirmPayementAuto.html.twig', ['souscription' => $assurance,]);// return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}elseif ($session->get('number') !=0 ) {if ($assurance->getPaiement()!=null) {$paiement = $assurance->getPaiement();$idAssurance = $assurance->getId();$external_id = $paiement->getExternalId();$operateur = $paiement->getMoyenPaiement()->getId();$typeOperation = 1;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirm/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . ',"idAssurance" : ' . (int)$idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($confirmPaiement) {$statut = $confirmPaiement['status'];if($operateur == 2){if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {if($confirmPaiement['result']['status'] == "initiated") {return new RedirectResponse($initiationPaiement['result']['page_url']);}else if($confirmPaiement['result']['status'] == "failed"){$session->set('number', 0);$this->addFlash('ErreurSous', "Le paiement de votre souscription n'a pas aboutie, veuillez réessayer est réussie avec succès.");return $this->redirectToRoute('app_payement_souscriptionAuto',['id'=>$idAssurance]);}else if($confirmPaiement['result']['status'] == "cancelled"){$session->set('number', 0);$this->addFlash('ErreurSous', "Le paiement de votre souscription n'a pas aboutie, veuillez réessayer est réussie avec succès.");return $this->redirectToRoute('app_payement_souscriptionAuto',['id'=>$idAssurance]);}}}else{if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}}}else{$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);// return $this->render('souscription/payement/payementAuto.html.twig', [// 'souscription' => $assurance,// ]);///return $this->redirectToRoute('detailscommande_clientpaye',['commande'=>$commandes->getCode()]);}}else{// $sess = $session->get('number') - 1;$session->set('number', 0);return $this->redirectToRoute('app_payement_souscriptionAuto',['id'=>$idAssurance]);// return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}} else {# code...// $sess = $session->get('number') - 1;$session->set('number', 0);$this->addFlash('ErreurSous', 'Veuillez réessayer...');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_payement_souscriptionAuto',['id'=>$idAssurance]);// return $this->render('souscription/payement/confirmPayementAuto.html.twig', [// 'souscription' => $assurance,// ]);//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}}}#[Route('/details/souscription/voyage/client/{id}', name: 'details_souscriptionVoyageClient')]public function details_souscriptionVoyageClient(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, AssuranceVoyage $assurance): Response{$idAssurance = $assurance->getId();if($assurance != null && $assurance->getIdPaiement()!=null && ($assurance->getIdPaiement()->getStatutPaiement()->getId() == 2 or $assurance->getIdPaiement()->getStatutPaiement()->getId() == 3 )) {$session->set('number', 0);return $this->redirectToRoute('app_payement_souscriptionVoyage',['id'=>$idAssurance]);}else {// $idAssurance = $assurance->getId();// dd($session->get('number'));if ($session->get('number') == 4 ) {$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->render('souscription/payement/confirmPayementVoyage.html.twig', ['assuranceVoyage' => $assurance,]);// return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}elseif ($session->get('number') !=0 ) {if ($assurance->getIdPaiement()!=null) {$paiement = $assurance->getIdPaiement();$idAssurance = $assurance->getId();$external_id = $paiement->getExternalId();$operateur = $paiement->getMoyenPaiement()->getId();$typeOperation = 2;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirm/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . ',"idAssurance" : ' . (int)$idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($confirmPaiement) {$statut = $confirmPaiement['status'];if($operateur == 2){if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Voyage";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {if($confirmPaiement['result']['status'] == "initiated") {return new RedirectResponse($initiationPaiement['result']['page_url']);}else if($confirmPaiement['result']['status'] == "failed"){$session->set('number', 0);$this->addFlash('ErreurSous', "Le paiement de votre souscription n'a pas aboutie, veuillez réessayer est réussie avec succès.");return $this->redirectToRoute('app_payement_souscriptionVoyage',['id'=>$idAssurance]);}else if($confirmPaiement['result']['status'] == "cancelled"){$session->set('number', 0);$this->addFlash('ErreurSous', "Le paiement de votre souscription n'a pas aboutie, veuillez réessayer est réussie avec succès.");return $this->redirectToRoute('app_payement_souscriptionVoyage',['id'=>$idAssurance]);}}}else{if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Voyage";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->redirectToRoute('details_souscriptionVoyageClient',['id'=>$idAssurance]);}}}else{$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->redirectToRoute('details_souscriptionVoyageClient',['id'=>$idAssurance]);// return $this->render('souscription/payement/payementAuto.html.twig', [// 'souscription' => $assurance,// ]);///return $this->redirectToRoute('detailscommande_clientpaye',['commande'=>$commandes->getCode()]);}}else{// $sess = $session->get('number') - 1;$session->set('number', 0);return $this->redirectToRoute('app_payement_souscriptionVoyage',['id'=>$idAssurance]);// return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}} else {# code...// $sess = $session->get('number') - 1;$session->set('number', 0);$this->addFlash('ErreurSous', 'Veuillez réessayer...');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription voyage";$msg_send = "paiement souscription";$msg_get = "";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_payement_souscriptionVoyage',['id'=>$idAssurance]);// return $this->render('souscription/payement/confirmPayementAuto.html.twig', [// 'souscription' => $assurance,// ]);//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}}}#[Route('/details/souscription/habitation/client/{id}', name: 'details_souscriptionHabitationClient')]public function details_souscriptionHabitationClient(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, AssuranceHabitation $assurance): Response{$idAssurance = $assurance->getId();if($assurance != null && $assurance->getIdPaiement()!=null && ($assurance->getIdPaiement()->getStatutPaiement()->getId() == 2 or $assurance->getIdPaiement()->getStatutPaiement()->getId() == 3 )) {$session->set('number', 0);return $this->redirectToRoute('app_payement_souscriptionHabitation',['id'=>$idAssurance]);}else {// $idAssurance = $assurance->getId();// dd($session->get('number'));if ($session->get('number') == 4 ) {$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->render('souscription/payement/confirmPayementHabitation.html.twig', ['assuranceHabitation' => $assurance,]);// return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}elseif ($session->get('number') !=0 ) {if ($assurance->getIdPaiement()!=null) {$paiement = $assurance->getIdPaiement();$idAssurance = $assurance->getId();$external_id = $paiement->getExternalId();$operateur = $paiement->getMoyenPaiement()->getId();$typeOperation = 3;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirm/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . ',"idAssurance" : ' . (int)$idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($confirmPaiement) {$statut = $confirmPaiement['status'];if($operateur == 2){if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Voyage";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {if($confirmPaiement['result']['status'] == "initiated") {return new RedirectResponse($initiationPaiement['result']['page_url']);}else if($confirmPaiement['result']['status'] == "failed"){$session->set('number', 0);$this->addFlash('ErreurSous', "Le paiement de votre souscription n'a pas aboutie, veuillez réessayer est réussie avec succès.");return $this->redirectToRoute('app_payement_souscriptionHabitation',['id'=>$idAssurance]);}else if($confirmPaiement['result']['status'] == "cancelled"){$session->set('number', 0);$this->addFlash('ErreurSous', "Le paiement de votre souscription n'a pas aboutie, veuillez réessayer est réussie avec succès.");return $this->redirectToRoute('app_payement_souscriptionHabitation',['id'=>$idAssurance]);}}}else{if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Habitation";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->redirectToRoute('details_souscriptionHabitationClient',['id'=>$idAssurance]);}}}else{$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->redirectToRoute('details_souscriptionHabitationClient',['id'=>$idAssurance]);// return $this->render('souscription/payement/payementAuto.html.twig', [// 'souscription' => $assurance,// ]);///return $this->redirectToRoute('detailscommande_clientpaye',['commande'=>$commandes->getCode()]);}}else{// $sess = $session->get('number') - 1;$session->set('number', 0);return $this->redirectToRoute('app_payement_souscriptionHabitation',['id'=>$idAssurance]);// return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}} else {# code...// $sess = $session->get('number') - 1;$session->set('number', 0);$this->addFlash('ErreurSous', 'Veuillez réessayer...');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription voyage";$msg_send = "paiement souscription";$msg_get = "";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_payement_souscriptionHabitation',['id'=>$idAssurance]);// return $this->render('souscription/payement/confirmPayementAuto.html.twig', [// 'souscription' => $assurance,// ]);//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);}}}#[Route('/details/souscriptionAuto/{id}', name: 'details_souscriptionAuto')]public function details_souscriptionAuto(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, Assurance $assurance): Response{if ($session->get('number') == 0) {//$session->clear();$this->addFlash('ErreurSous', 'Le paiement de votre souscription n a pas aboutie. veuillez réessayer...');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "Erreur, le paiement de votre souscription n a pas aboutie.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_auto');} else {$paiement = $assurance->getPaiement();$idAssurance = $assurance->getId();$external_id = $paiement->getExternalId();$operateur = $paiement->getMoyenPaiement()->getId();$typeOperation = 1;// dd($idAssurance);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirm/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . ',"idAssurance" : ' . (int)$idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($confirmPaiement==null) {# code...$statut = null;}else{$statut = $confirmPaiement['status'];}if ($statut == 200) {$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {if ($statut == null) {$this->addFlash('error', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "Erreur système veuillez réessayer plutard.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');}else{$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->render('souscription/details/detailsAssuranceAuto.html.twig', ['paiement' => $paiement,'assurance' => $assurance,]);}}}return $this->render('souscription/details/detailsAssuranceAuto.html.twig', ['paiement' => $paiement,'assurance' => $assurance,]);}#[Route('/souscription/assurances/voyage', name: 'app_souscription_Voyage')]public function indexVoyage(EntityManagerInterface $entityManager,SessionInterface $session,Request $request,FileUploader $uploader): Response {// dd($session);$today = date("Y-m-d");// $ch = curl_init();// curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/client/getListeZoneVoyage");// $headers = array(// "Content-Type: application/json",// "Accept: application/json",// );// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);// //for debug only!// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// $server_output = curl_exec($ch);// curl_close($ch);$zones = $entityManager->getRepository(ZoneVoyage::class)->findBy(['statut' => '1']);// dd($zones);// $zoneVoyage = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);// dd($zoneVoyage);// if ($zoneVoyage && array_key_exists('status', $zoneVoyage)) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// return $this->redirectToRoute('app_home');// } else {// if ($zoneVoyage['statut'] != 200) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// return $this->redirectToRoute('app_home');// }// }// $zoneVoyageData = $zoneVoyage['zones'];$zoneVoyageData = $zones;if ($request->request->count() > 0) {$nom = trim($request->request->get("nom"));$session->set('nom', $nom);$prenom = trim($request->request->get("prenom"));$session->set('prenom', $prenom);$telephone = trim($request->request->get("phone"));$session->set('telephone', $telephone);$email = trim($request->request->get("email"));$session->set('email', $email);$numPasseport = trim($request->request->get("reference"));$session->set('numPasseport', $numPasseport);$dateExp = trim($request->request->get("expiration"));$session->set('dateExp', $dateExp);// $photoPass = $request->files->get("photoPass");// $photoPass = trim($request->request->get("file"));$photoPass = trim($request->files->get("photopass"));$session->set('photoPass', $photoPass);$zone = trim($request->request->get("zone"));$session->set('zone', $zone);$DateDep = trim($request->request->get("dateDepart"));$session->set('DateDep', $DateDep);$nbrJour = trim($request->request->get("nbrJour"));$session->set('nbrJour', $nbrJour);$ville = trim($request->request->get("destination"));$session->set('ville', $ville);$motif = trim($request->request->get("motifVoya"));$session->set('motif', $motif);$compagnie = trim($request->request->get("compagnieTrans"));$session->set('compagnie', $compagnie);$address = trim($request->request->get("addressSejour"));$session->set('address', $address);$photoPass = $request->files->get("file");// dd($dateExp,$DateDep,$nbrJour);if ($dateExp <= $DateDep) {$this->addFlash('validiter', 'Passeport Invalide", "La validité de votre passeport ne couvre pas votre voyage.');return $this->redirectToRoute('app_souscription_Voyage');} else {$dateVali = date('Y-m-d', strtotime($DateDep . ' + 90 DAY'));if ($dateVali >= $dateExp) {$this->addFlash('validiter', 'Passeport Invalide", "La validité de votre passeport ne couvre pas votre voyage.');return $this->redirectToRoute('app_souscription_Voyage');} else {// $ch = curl_init();// curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/getTarifVoyage");// curl_setopt($ch, CURLOPT_POSTFIELDS, '{// "idZone" : ' . (int)$zone . ',// "duree" : ' . (int)$nbrJour . '// }');// $headers = array(// "Content-Type: application/json",// "Accept: application/json",// );// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);// //for debug only!// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// $server_output = curl_exec($ch);// curl_close($ch);// $tarif = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);//$dureeVoyage = $entityManager->getRepository(DureeVoyage::class)->findBy(['statut' => 1]);$duree = (int)$nbrJour;$idZone = (int)$zone;foreach ($dureeVoyage as $value) {if (($duree >= $value->getDebut()) && ($duree <= $value->getFin())) {$idDuree[] = $value;}}$tarif = $entityManager->getRepository(TarifVoyage::class)->findOneBy(['typeTarif' => $idZone,'dureeVoyage' => $idDuree[0]->getId()]);// if ($tarif) {// return $this->json([// 'statut' => 200,// 'montant' => $tarif->getMontant(),// 'idTarif' => $tarif->getId(),// ], 200);// } else {// return $this->json([// 'statut' => 201,// 'message' => "Aucune tarification trouvée...",// ], 200);// }// dd($tarif);// if ($tarif && array_key_exists('status', $tarif)) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// return $this->redirectToRoute('app_home');// } else {// if ($tarif['statut'] != 200) {// $this->addFlash('ErrorAPI', $tarif['message']);// return $this->redirectToRoute('app_souscription_Voyage');// }// }// $tarifStatut = $tarif['statut'];if ($tarif) {$montant = $tarif->getMontant();$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/clientCaren");curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, '{"nom" : "' . $nom . '","prenom" : "' . $prenom . '","telephone" : "' . $telephone . '"}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$clientCaren = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);// if ($clientCaren && array_key_exists('status', $clientCaren)) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// $iduser = null;// $idclient = null;// $action = "Souscription Voyage";// $msg_send = "Demande souscription";// $msg_get = "Erreur système veuillez réessayer plutard.";// $log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);// $entityManager->persist($log);// $entityManager->flush();// return $this->redirectToRoute('app_home');// } else {// // dd($clientCaren);// // if ($clientCaren['statut'] != 200) {// // $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// // return $this->redirectToRoute('app_home');// // }// }// $clientStatut = $clientCaren['statut'];// $client = $clientCaren['client'];// $typeClient = $client['idTypeClient'];$infoTarif = $tarif;// if ($client && $typeClient['id'] == 1) {// $messageErr = $clientCaren['message'];// return $this->render('authentication/login.html.twig', [// 'messageErr' => $messageErr,// ]);// } else {// dd($client);$client = $entityManager->getRepository(Client::class)->findOneBy(['telephone' => $telephone, 'idTypeClient' => 2]);if ($client) {// $client = $entityManager->getRepository(Client::class)->findOneBy(['statut' => 1, 'telephone' => $telephone, 'id_type_client' => 2]);$infoVille = $entityManager->getRepository(Ville::class)->findOneBy(['statut' => 1, 'id' => (int)$ville]);$dateRet = date('Y-m-d', strtotime($DateDep . '' . (int)$nbrJour . ' day'));$dateR = date('Y-m-d', strtotime($dateRet . ' - 1 DAY'));$dateDepart = (\DateTime::createFromFormat('Y-m-d H:i:s', $DateDep . '00:00:00'));$dateRetour = (\DateTime::createFromFormat('Y-m-d H:i:s', $dateR . '00:00:00'));// dd($dateDepart, $dateRetour);$assuranceVoyage = new AssuranceVoyage;$assuranceVoyage->setIdClient($client)->setNomBeneficiaire($nom)->setPrenomBeneficiaire($prenom)->setTelephoneBeneficiaire($telephone)->setCanal("WEB")->setIdVille($infoVille)->setIdTarif($infoTarif)->setNumeroPassport($numPasseport)->setDateExpPassport(\DateTime::createFromFormat('Y-m-d H:i:s', $dateExp . '00:00:00'))->setDateDepart($dateDepart)->setNombreJour($nbrJour)->setMotifVoyage($motif)->setCompagnie($compagnie)->setAdresseSejour($address)->setDateRetour($dateRetour)->setMontant($montant)->setCreatedAt(new DateTimeImmutable())->setStatut(0);$mat = "Document";$array = array("png", "PNG","jpg","JPG","jpeg","JPEG");$filename2 = $photoPass->getClientOriginalName();$filename2 = explode('.' , $filename2);$filename2 = $mat.'photoPass_'.$assuranceVoyage->getId().'.'.$filename2[1];$extension=substr(strrchr($filename2,'.'),1);if ($photoPass->getSize() > (5 * 1024 * 1024)) {$this->addFlash('ErreurSous', "Le fichier ne doit pas dépasser 5 Mo");return $this->redirectToRoute('app_souscription_Voyage', [], Response::HTTP_SEE_OTHER);}if (in_array($extension, $array, true)){// $uploader->upload($upload7, $document, $filename);//$uploader->upload("../public/images/assurances", $assurance, $filename);//$uploader->upload("../public/images/permis", $permis, $filename1);$uploaderImag=$uploader->upload("../public/images/carteGrises", $photoPass, $filename2);if ($uploaderImag==400) {# code...$this->addFlash('ErreurSous', "Veuillez recharger une image qui ne doit pas dépasser 5 Mo et en jpg ou png");return $this->redirectToRoute('app_souscription_Voyage', [], Response::HTTP_SEE_OTHER);}// $protocol = 'http';$protocol = 'https';$HTTP_HOST = $_SERVER['HTTP_HOST'];$lienDocument2 = $protocol. '://'.$HTTP_HOST.'/'.'images/carteGrises/'.$filename2;}else{$this->addFlash('ErreurSous', "Ce format de fichier pour l'image n'est pas accepté par le système!!");return $this->redirectToRoute('app_souscription_Voyage', [], Response::HTTP_SEE_OTHER);}$assuranceVoyage->setPhotoPassport($lienDocument2);$paiement = new Paiement();$statutPaiement = $entityManager->getRepository(StatutPaiement::class)->find(1);$paiement->setMontant($assuranceVoyage->getMontant())->setStatut(0)->setStatutPaiement($statutPaiement)->setCreatedAt(new \DateTimeImmutable('now'));$entityManager->persist($paiement);// dd($assuranceVoyage);$assuranceVoyage->setIdPaiement($paiement);$entityManager->persist($assuranceVoyage);$entityManager->flush();$this->addFlash('initiation', '');$iduser = null;$idclient = $client;$action = "Souscription Voyage";$msg_send = "Demande souscription";$msg_get = "Demande souscription éffectuée avec succés.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();$session->clear();return $this->render('souscription/payement/payementVoyage.html.twig', ['assuranceVoyage' => $assuranceVoyage,'dateExp' => $dateExp,'dateDep' => $DateDep,'dateRet' => $dateR,]);}// }} else {$this->addFlash('noTarif', 'Aucune tarification trouvée, veuillez rééssayer.');$iduser = null;$idclient = null;$action = "Souscription Voyage";$msg_send = "Demande souscription";$msg_get = "Aucune tarification trouvée, veuillez rééssayer.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_Voyage');}}}}return $this->render('souscription/indexVoyage.html.twig', ['zoneVoyage' => $zoneVoyageData,'messageError' => '','today' => $today,]);}#[Route('/liste_ville/filtre', name: 'liste_type', methods: ['POST'])]public function fitreVille(Request $request, VilleRepository $villeRepository){if ($request->isXmlHttpRequest()) {$ville = $request->request->get('zone');$retour = "";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/client/getListeVille");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"idZone": ' . (int)$ville . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$villes = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($villes && array_key_exists('status', $villes)) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');return $this->redirectToRoute('app_home');} else {if ($villes['statut'] != 200) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');return $this->redirectToRoute('app_home');}}$listeVille = $villes['villes'];foreach ($listeVille as $enreg) {$id = $enreg['id'];$libelle = $enreg['libelle'];$retour .= "<option value='$id'>$libelle</option>";}$response = new Response(json_encode($retour));return $response;}}#[Route('/liste_tarif/filtre', name: 'liste_getTarif', methods: ['POST', 'GET'])]public function fitreTarifGet(Request $request, PuissanceRepository $puissanceRepository){if ($request->isXmlHttpRequest()) {$zone = 1;$classe = 1;$puissance = $request->request->get('puissance');$code = $request->request->get('code');// $classe = $request->request->get('classe');// $zone = $request->request->get('zone');$duree = $request->request->get('duree');$energie = $request->request->get('energie');$usage = $request->request->get('usage');if ($usage == 1) {$code = 101;} else if ($usage == 2) {$code = 105;}$retour = "";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/getTarif");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"ENERGIE": ' . (int)$energie . ',"ZONE": ' . $zone . ',"CLASSE": ' . $classe . ',"DUREE": ' . (int)$duree . ',"PUISSANCE": ' . $puissance . ',"CODE": ' . $code . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$retour = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);$response = new Response(json_encode($retour));return $response;}}#[Route('/liste_puissance/filtre', name: 'liste_puissance_type', methods: ['POST'])]public function fitrePuissance(Request $request, PuissanceRepository $puissanceRepository){if ($request->isXmlHttpRequest()) {$usage = $request->request->get('usage');$retour = "";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/client/getListePuissance");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"usage": ' . (int)$usage . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$puissances = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($puissances && array_key_exists('status', $puissances)) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');return $this->redirectToRoute('app_home');} else {if ($puissances['statut'] != 200) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');return $this->redirectToRoute('app_home');}}$listePuissance = $puissances['puissances'];foreach ($listePuissance as $enreg) {$id = $enreg['id'];$libelle = $enreg['p2'] . ' CV ';$retour .= "<option value='$id'>$libelle</option>";}$response = new Response(json_encode($retour));return $response;}}#[Route('/souscription/habitation/payement/{id}', name: 'app_payement_souscriptionHabitation', methods: ['POST', 'GET'])]public function payementhabitation(EntityManagerInterface $entityManager, SessionInterface $session, Request $request, AssuranceHabitation $assurance): Response{// if ($request->request->count() > 0 && $request->request->get("souscription") == "souscription") {if($request->request->count() >0 ){$payement = $request->request->get("payement");$telephone2 = $request->request->get("phone2");$paymentOptions = $request->request->get('paymentOptions');$operateur = $request->request->get('operateur');$phonePayment = trim($request->request->get('phonePayment'));$ipay_number = trim($request->request->get('ipay_number'));if($operateur == 2){// $phonePayment = "40410000000";$phonePayment = str_replace(" ", "", $ipay_number);}else{$phonePayment = str_replace(" ", "", $phonePayment);}$indicatif = "227";$typeOperation = 3;$idAssurance = $assurance->getId();if($assurance->getIdPaiement()!=null && $assurance->getIdPaiement()->getMoyenPaiement()!=null && $assurance->getIdPaiement()->getExternalId()!=null ) {$paiement = $assurance->getIdPaiement();$idAssurance = $assurance->getId();$external_id = $paiement->getExternalId();$typeOperation = 3;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirm/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . ',"idAssurance" : ' . (int)$idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($confirmPaiement==null) {# code...$statut = null;}else{$statut = $confirmPaiement['status'];}}else{$statut=null;}if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/get/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"msisdn" : "' . $phonePayment . '","idAssurance" : ' . (int)$idAssurance . ',"indicatif" : ' . $indicatif . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$initiationPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);// dd($initiationPaiement);if($initiationPaiement !=null){$statut = $initiationPaiement['status'];if($operateur == 2){if ($statut == 200) {if ($initiationPaiement['result']['status'] == "initiated") {return new RedirectResponse($initiationPaiement['result']['page_url']);// $session->set('number', 4);//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {$this->addFlash('ErreurSous', $initiationPaiement['message']);$session->set('number', 0);}}else{$this->addFlash('ErreurSous', $initiationPaiement['message']);$session->set('number', 0);}}else{if ($statut == 200) {$session->set('number', 4);return $this->redirectToRoute('details_souscriptionHabitationClient',['id'=>$idAssurance]);} else {$this->addFlash('ErreurSous', $initiationPaiement['message']);$session->set('number', 0);}}}else{$this->addFlash('ErreurSous', "Veuillez réessayer...");$session->set('number', 0);}return $this->redirectToRoute('app_payement_souscriptionHabitation',['id'=>$idAssurance]);}}return $this->render('souscription/payement/payementHabitation.html.twig', ['assuranceHabitation' => $assurance,]);}#[Route('/souscription/voyage/payement/{id}', name: 'app_payement_souscriptionVoyage', methods: ['POST', 'GET'])]public function payementVoyage(EntityManagerInterface $entityManager, SessionInterface $session, Request $request, AssuranceVoyage $assurance): Response{// if ($request->request->count() > 0 && $request->request->get("souscription") == "souscription") {if($request->request->count() >0 ){$payement = $request->request->get("payement");$telephone2 = $request->request->get("phone2");$paymentOptions = $request->request->get('paymentOptions');$operateur = $request->request->get('operateur');$phonePayment = trim($request->request->get('phonePayment'));$ipay_number = trim($request->request->get('ipay_number'));if($operateur == 2){// $phonePayment = "40410000000";$phonePayment = str_replace(" ", "", $ipay_number);}else{$phonePayment = str_replace(" ", "", $phonePayment);}$indicatif = "227";$typeOperation = 2;$idAssurance = $assurance->getId();if($assurance->getIdPaiement()!=null && $assurance->getIdPaiement()->getMoyenPaiement()!=null && $assurance->getIdPaiement()->getExternalId()!=null ) {$paiement = $assurance->getIdPaiement();$idAssurance = $assurance->getId();$external_id = $paiement->getExternalId();$typeOperation = 2;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirm/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . ',"idAssurance" : ' . (int)$idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($confirmPaiement==null) {# code...$statut = null;}else{$statut = $confirmPaiement['status'];}}else{$statut=null;}if ($statut == 200) {$session->set('number', 0);$this->addFlash('success', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/get/merchant/payment");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"msisdn" : "' . $phonePayment . '","idAssurance" : ' . (int)$idAssurance . ',"indicatif" : ' . $indicatif . ',"typeOperation" : ' . (int)$typeOperation . ',"operateur" : ' . (int)$operateur . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$initiationPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if($initiationPaiement !=null){$statut = $initiationPaiement['status'];if($operateur == 2){if ($initiationPaiement['result']['status'] == "initiated") {return new RedirectResponse($initiationPaiement['result']['page_url']);// $session->set('number', 4);//return $this->redirectToRoute('details_souscriptionAutoClient',['id'=>$idAssurance]);} else {$this->addFlash('ErreurSous', $initiationPaiement['message']);$session->set('number', 0);}}else{if ($statut == 200) {$session->set('number', 4);return $this->redirectToRoute('details_souscriptionVoyageClient',['id'=>$idAssurance]);} else {$this->addFlash('ErreurSous', $initiationPaiement['message']);$session->set('number', 0);}}}else{$this->addFlash('ErreurSous', "Veuillez réessayer...");$session->set('number', 0);}return $this->redirectToRoute('app_payement_souscriptionVoyage',['id'=>$idAssurance]);}}return $this->render('souscription/payement/payementVoyage.html.twig', ['assuranceVoyage' => $assurance,]);}#[Route('/souscriptionVoyage/old/VoyagePayement/{id}', name: 'app_payement_souscriptionVoyageOld', methods: ['POST', 'GET'])]public function payementVoyageOld(EntityManagerInterface $entityManager, SessionInterface $session, Request $request, AssuranceVoyage $assuranceVoyage): Response{if ($request->request->count() > 0 && $request->request->get("souscriptionVoyage") == "souscriptionVoyage") {$payement = $request->request->get("payement");$telephone2 = $request->request->get("phone2");$idAssurance = $assuranceVoyage->getId();// dd($assuranceVoyage, $payement, $telephone2);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/getPaiement");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"msisdn" : "' . $telephone2 . '","type_op" : 2,"id_op" : ' . (int)$idAssurance . ',"operateur" : ' . (int)$payement . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$initiationPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($initiationPaiement && array_key_exists('status', $initiationPaiement)) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = $assuranceVoyage->getIdClient();$action = "Souscription Voyage";$msg_send = "paiement souscription";$msg_get = "Erreur système veuillez réessayer plutard..";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {// if ($initiationPaiement['statut'] != 200) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// return $this->redirectToRoute('app_home');// }}$statut = $initiationPaiement['statut'];// dd($statut);if ($statut == 200) {$session->set('number', 2);return $this->redirectToRoute('details_souscriptionVoyage', ['id' => $idAssurance]);} else {return $this->redirectToRoute('app_payement_souscriptionVoyage', ['id' => $idAssurance]);}}return $this->redirectToRoute('app_home');}#[Route('/details_souscriptionVoyage/{id}', name: 'details_souscriptionVoyage')]public function details_souscriptionVoyage(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, AssuranceVoyage $assuranceVoyage): Response{if ($session->get('number') == 0) {$session->clear();$this->addFlash('attentePaiement', 'Erreur, le paiement de votre souscription n a pas aboutie.');$iduser = null;$idclient = $assuranceVoyage->getIdClient();$action = "Souscription Voyage";$msg_send = "paiement souscription";$msg_get = "Erreur, le paiement de votre souscription n a pas aboutie.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_Voyage');} else {$paiement = $assuranceVoyage->getIdPaiement();$idAssurance = $assuranceVoyage->getId();$external_id = $paiement->getExternalId();$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirmPaiement");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"type_op" : 2,"id_op" : ' . $idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);// dd($confirmPaiement);if ($confirmPaiement && array_key_exists('status', $confirmPaiement)) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = $assuranceVoyage->getIdClient();$action = "Souscription Voyage";$msg_send = "paiement souscription";$msg_get = "Erreur système veuillez réessayer plutard.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {// if ($confirmPaiement['statut'] != 200) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// return $this->redirectToRoute('app_home');// }}$statut = $confirmPaiement['statut'];// dd($statut);if ($statut == 200) {$this->addFlash('souscription', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assuranceVoyage->getIdClient();$action = "Souscription Voyage";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->render('souscription/details/detailsAssuranceVoyage.html.twig', ['paiement' => $paiement,'assuranceVoyage' => $assuranceVoyage,]);}return $this->render('souscription/details/detailsAssuranceVoyage.html.twig', ['paiement' => $paiement,'assuranceVoyage' => $assuranceVoyage,]);}}#[Route('/souscription/habitation', name: 'app_souscription_Habitation')]public function indexHabitation(EntityManagerInterface $entityManager,SessionInterface $session,Request $request,): Response {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/client/getListeFormule");$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$response = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($response && array_key_exists('status', $response)) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = null;$action = "Souscription Habitation";$msg_send = "demande souscription";$msg_get = "Erreur système veuillez réessayer plutard.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {if ($response['statut'] != 200) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = null;$action = "Souscription Habitation";$msg_send = "demande souscription";$msg_get = "Erreur système veuillez réessayer plutard.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');}}$listeFormule = $response['formules'];// dd($listeFormule);if ($request->request->count() > 0) {$formule = trim($request->request->get("formule"));$nom = trim($request->request->get("nom"));$prenom = trim($request->request->get("prenom"));$telephone = trim($request->request->get("phone"));$quartier =trim($request->request->get("quartier"));$ilot = trim($request->request->get("ilot"));$parcelle = trim($request->request->get("parcelle"));$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/getTarifHabitation");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"idFormule" : ' . (int)$formule . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$tarif = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($tarif && array_key_exists('status', $tarif)) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = null;$action = "Souscription Habitation";$msg_send = "demande souscription";$msg_get = "Erreur système veuillez réessayer plutard.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {if ($tarif['statut'] != 200) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = null;$action = "Souscription Habitation";$msg_send = "demande souscription";$msg_get = "Erreur système veuillez réessayer plutard.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');}}$tarifStatut = $tarif['statut'];if ($tarifStatut == 200) {$montant = $tarif['montant'];$description = $tarif['description'];$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/clientCaren");curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, '{"nom" : "' . $nom . '","prenom" : "' . $prenom . '","telephone" : "' . $telephone . '"}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$clientCaren = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);// if ($clientCaren && array_key_exists('status', $clientCaren)) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// $iduser = null;// $idclient = null;// $action = "Souscription Habitation";// $msg_send = "demande souscription";// $msg_get = "Erreur système veuillez réessayer plutard.";// $log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);// $entityManager->persist($log);// $entityManager->flush();// return $this->redirectToRoute('app_home');// } else {// if ($clientCaren['statut'] != 200 && $clientCaren['statut'] != 400) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// $iduser = null;// $idclient = null;// $action = "Souscription Habitation";// $msg_send = "demande souscription";// $msg_get = "Erreur système veuillez réessayer plutard.";// $log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);// $entityManager->persist($log);// $entityManager->flush();// return $this->redirectToRoute('app_home');// }// }// $clientStatut = $clientCaren['statut'];// $client = $clientCaren['client'];// $typeClient = $client['idTypeClient'];$infoTarif = $entityManager->getRepository(TarifHabitation::class)->find($tarif['idTarif']);// dd($client);// if ($client && $typeClient['id'] == 1) {// $messageErr = $clientCaren['message'];// return $this->render('authentication/login.html.twig', [// 'messageErr' => $messageErr,// ]);// } else {$idClient = $entityManager->getRepository(Client::class)->findOneBy(['telephone' => $telephone, 'idTypeClient' => 2]);if ($idClient) {$assuranceHabitation = new AssuranceHabitation;$assuranceHabitation->setIdTarif($infoTarif)->setIdClient($idClient)->setNomBeneficiaire($nom)->setPrenomBeneficiaire($prenom)->setTelephoneBeneficiaire($telephone)->setCanal("WEB")->setQuartier($quartier)->setIlot($ilot)->setParcelle($parcelle)->setCreatedAt(new DateTimeImmutable())->setStatut(0);// dd($assuranceHabitation);$paiement = new Paiement();$statutPaiement = $entityManager->getRepository(StatutPaiement::class)->find(1);$paiement->setMontant($montant)->setStatut(0)->setStatutPaiement($statutPaiement)->setCreatedAt(new \DateTimeImmutable('now'));$entityManager->persist($paiement);// dd($paiement);$assuranceHabitation->setIdPaiement($paiement);$entityManager->persist($assuranceHabitation);$entityManager->flush();$iduser = null;$idclient = null;$action = "Souscription Habitation";$msg_send = "Demande souscription";$msg_get = "Demande souscription éffectuée avec succés";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();$this->addFlash('initiation', '');return $this->render('souscription/payement/payementHabitation.html.twig', ['assuranceHabitation' => $assuranceHabitation]);}else{$this->addFlash('noTarif', 'Operation non aboutie, veuillez rééssayer.');$iduser = null;$idclient = null;$action = "Souscription Habitation";$msg_send = "demande souscription";$msg_get = "Operation non aboutie, veuillez rééssayer.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_Habitation');}// }} else {$this->addFlash('noTarif', 'Aucune tarification trouvée, veuillez rééssayer.');$iduser = null;$idclient = null;$action = "Souscription Habitation";$msg_send = "demande souscription";$msg_get = "Aucune tarification trouvée, veuillez rééssayer.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_Habitation');}}return $this->render('souscription/indexHabitation.html.twig', ['formules' => $listeFormule]);}#[Route('/souscription/habitation/Old/HabitationPayement/{id}', name: 'app_payement_souscriptionHabitationOld', methods: ['POST', 'GET'])]public function payementHabitationOld(EntityManagerInterface $entityManager, SessionInterface $session, Request $request, AssuranceHabitation $assuranceHabitation): Response{if ($request->request->count() > 0 && $request->request->get("souscriptionHabitation") == "souscriptionHabitation") {$payement = $request->request->get("payement");$telephone2 = $request->request->get("phone2");$idAssurance = $assuranceHabitation->getId();// dd($assuranceHabitation, $payement, $telephone2);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/getPaiement");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"msisdn" : "' . $telephone2 . '","type_op" : 3,"id_op" : ' . (int)$idAssurance . ',"operateur" : ' . (int)$payement . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$initiationPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($initiationPaiement && array_key_exists('status', $initiationPaiement)) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = $assuranceHabitation->getIdClient();$action = "Souscription Habitation";$msg_send = "paiement souscription";$msg_get = "Erreur système veuillez réessayer plutard";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {// if ($initiationPaiement['statut'] != 200) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// return $this->redirectToRoute('app_home');// }}$statut = $initiationPaiement['statut'];// dd($statut);if ($statut == 200) {$session->set('number', 2);return $this->redirectToRoute('details_souscriptionHabitation', ['id' => $idAssurance]);} else {return $this->redirectToRoute('app_payement_souscriptionHabitation', ['id' => $idAssurance]);}}return $this->redirectToRoute('app_home');}#[Route('/details_souscriptionHabitation/{id}', name: 'details_souscriptionHabitation')]public function details_souscriptionHabitation(EntityManagerInterface $entityManager, $id, SessionInterface $session, Request $request, AssuranceHabitation $assuranceHabitation): Response{if ($session->get('number') == 0) {$session->clear();$this->addFlash('attentePaiement', 'Erreur, le paiement de votre souscription n a pas aboutie.');$iduser = null;$idclient = $assuranceHabitation->getIdClient();$action = "Souscription Habitation";$msg_send = "paiement souscription";$msg_get = "Erreur, le paiement de votre souscription n a pas aboutie";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_souscription_Voyage');} else {$paiement = $assuranceHabitation->getIdPaiement();$idAssurance = $assuranceHabitation->getId();$external_id = $paiement->getExternalId();$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carenapi235679814.caren-niger.com/api/confirmPaiement");curl_setopt($ch, CURLOPT_POSTFIELDS, '{"external_id" : ' . (int)$external_id . ',"type_op" : 3,"id_op" : ' . $idAssurance . '}');$headers = array("Content-Type: application/json","Accept: application/json",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$confirmPaiement = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);if ($confirmPaiement && array_key_exists('status', $confirmPaiement)) {$this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');$iduser = null;$idclient = $assuranceHabitation->getIdClient();$action = "Souscription Habitation";$msg_send = "paiement souscription";$msg_get = "Erreur système veuillez réessayer plutard";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {// if ($confirmPaiement['statut'] != 200) {// $this->addFlash('ErrorAPI', 'Erreur système veuillez réessayer plutard.');// return $this->redirectToRoute('app_home');// }}$statut = $confirmPaiement['statut'];// dd($statut);if ($statut == 200) {$this->addFlash('souscription', 'Félicitations, votre souscription est réussie avec succès.');$iduser = null;$idclient = $assuranceHabitation->getIdClient();$action = "Souscription Habitation";$msg_send = "paiement souscription";$msg_get = "Félicitations, votre souscription est réussie avec succès.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');} else {$sess = $session->get('number') - 1;$session->set('number', $sess);return $this->render('souscription/details/detailsAssuranceHabitation.html.twig', ['paiement' => $paiement,'assuranceHabitation' => $assuranceHabitation,]);}}return $this->render('souscription/details/detailsAssuranceHabitation.html.twig', ['paiement' => $paiement,'assuranceHabitation' => $assuranceHabitation,]);}#[Route('/{id}/deleteAssuranceAuto', name: 'deleteAssuranceAuto', methods: ['GET', 'POST'])]public function deleteAuto(Request $request, Assurance $assurance, EntityManagerInterface $entityManager, SessionInterface $session): Response{$statut = $assurance->getStatut();$assurance->setStatut(2);$entityManager->persist($assurance);$entityManager->flush();$iduser = null;$idclient = $assurance->getIdClient();$action = "Souscription Automobile";$msg_send = "suppression souscription";$msg_get = "Réussie avec succès.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();$session->clear();return $this->redirectToRoute('app_home');}#[Route('/{id}/deleteAssuranceVoyage', name: 'deleteAssuranceVoyage', methods: ['GET', 'POST'])]public function deleteVoyage(Request $request, AssuranceVoyage $assuranceVoyage, EntityManagerInterface $entityManager, SessionInterface $session): Response{$statut = $assuranceVoyage->getStatut();$assuranceVoyage->setStatut(2);$entityManager->persist($assuranceVoyage);$entityManager->flush();$iduser = null;$idclient = $assuranceVoyage->getIdClient();$action = "Souscription Voyage";$msg_send = "suppression souscription";$msg_get = "Réussie avec succès.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();$session->clear();return $this->redirectToRoute('app_home');}#[Route('/{id}/deleteAssuranceHabitation', name: 'deleteAssuranceHabitation', methods: ['GET', 'POST'])]public function deleteHabitation(Request $request, AssuranceHabitation $assuranceHabitation, EntityManagerInterface $entityManager): Response{$statut = $assuranceHabitation->getStatut();$assuranceHabitation->setStatut(2);$entityManager->persist($assuranceHabitation);$entityManager->flush();$iduser = null;$idclient = $assuranceHabitation->getIdClient();$action = "Souscription Habitation";$msg_send = "suppression souscription";$msg_get = "Réussie avec succès.";$log = $this->log($action, $msg_send, $msg_get, $iduser,$idclient);$entityManager->persist($log);$entityManager->flush();return $this->redirectToRoute('app_home');}#[Route('/assurance/autoSouscriptionRetryPayement/{id}', name: 'app_retrySouscriptionPayement_auto', methods: ['POST', 'GET'])]public function retryPayementSouscriptionAuto(EntityManagerInterface $entityManager, SessionInterface $session, Request $request, Assurance $assurance): Response{$montant = $assurance->getMontantAssurance();$montantLivraison = $assurance->getMontantLivraison();$montantTotal = $assurance->getMontantTotal();// dd($montant, $montantLivraison, $montantTotal);$this->addFlash('initiation', '');return $this->render('souscription/payement/payementAuto.html.twig', ['souscription' => $assurance,'montant' => $montant,'montantLivraison' => $montantLivraison,'montantTotal' => $montantTotal]);}#[Route('/assurance/voyaSouscriptionRetryPayement/{id}', name: 'app_retrySouscriptionPayement_voya', methods: ['POST', 'GET'])]public function retryPayementSouscriptionVoya(EntityManagerInterface $entityManager, SessionInterface $session, Request $request, assuranceVoyage $assuranceVoyage): Response{// dd($assuranceVoyage);$this->addFlash('initiation', '');$dateExp = $assuranceVoyage->getDateExpPassport();$dateDep = $assuranceVoyage->getDateDepart();$dateR = $assuranceVoyage->getDateRetour();// dd($dateExp, $dateDepart, $dateR);return $this->render('souscription/payement/payementVoyage.html.twig', ['assuranceVoyage' => $assuranceVoyage,'dateExp' => $dateExp->format('d/m/Y'),'dateDep' => $dateDep->format('d/m/Y'),'dateRet' => $dateR->format('d/m/Y')]);}#[Route('/assurance/habiSouscriptionRetryPayement/{id}', name: 'app_retrySouscriptionPayement_habi', methods: ['POST', 'GET'])]public function retryPayementSouscriptionHabi(EntityManagerInterface $entityManager, SessionInterface $session, Request $request, AssuranceHabitation $assuranceHabitation): Response{// dd($assuranceHabitation);$this->addFlash('initiation', '');return $this->render('souscription/payement/payementHabitation.html.twig', ['assuranceHabitation' => $assuranceHabitation,]);}public function log($action, $msg_send, $msg_get, $iduser, $idclient){$log = new Log();$date = new \DateTime('now');$ip = $_SERVER['REMOTE_ADDR'];if($iduser){$log->setUser($iduser);}if($idclient){$log->setClient($idclient);}$log->setAction($action);$log->setDate($date);$log->setIp($ip);$log->setCanal("web");$log->setMsgSend($msg_send);$log->setMsgGet($msg_get);return $log;}function merchantIpay($amount, $title, $reference, $description, $token){// "amount": "50",// "title": "Test",// "reference": "werdsa234ewqq1612",// "description": "....",// "shouldExpire": true,$on_success_redirection_url= "https://example.com";$on_failed_redirection_url = "https://example.com";$shouldExpire = true;$currency = "XOF";$country = "NE";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://api.i-pay.money/api/v1/external_payments");//curl_setopt($ch, CURLOPT_URL, "https://i-pay.money/api/v1/payments");curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, '{"amount": "' . $amount . '","title": "' . $title . '","reference": "' . $reference . '","description": "' . $description . '","shouldExpire": "' . $shouldExpire . '","on_success_redirection_url": "' . $on_success_redirection_url . '","on_failed_redirection_url": "' . $on_failed_redirection_url . '"}');curl_setopt($ch, CURLOPT_TIMEOUT, 30);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);$headers = array('Ipay-Payment-Type: external_payment','Ipay-Target-Environment: sandbox','Content-Type: application/json','Authorization: Bearer ' . $token,// 'Cookie: SERVERID=s116'// "Authorization: Token 06bf9e40ae925464a2421365f928fecb4bebe539",);curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//for debug only!curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec($ch);curl_close($ch);$coc_user = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $server_output), true);return $coc_user;}}