src/Controller/HomeController.php line 31
<?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 Symfony\Component\Mailer\MailerInterface;use Symfony\Component\HttpFoundation\File\File;use Psr\Log\LoggerInterface;use App\Services\ControlParams;use App\Form\HomeClientCode;use App\Form\UploadType;class HomeController extends AbstractController{private $control;private $logger;public function __construct(LoggerInterface $logger, MailerInterface $mailer, string $apiKey, string $apiToken, string $apiUrl){$this->logger = $logger;$this->control = new ControlParams($logger, $mailer, $apiKey, $apiToken, $apiUrl);}#[Route('/', methods: ['GET','POST'], name: 'app_home')]public function index(Request $request): Response{$parameters = array();$home_client_code = array();// === +++ Controle +++ ===$params = $this->control->getParams($request);// === +++ +++ ===$form = $this->createForm(HomeClientCode::class);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$home_client_code = $params['home_client_code'];$clientCode = $form->get('clientCode')->getData();$reference = $form->get('reference')->getData();$designation = $form->get('designation')->getData();$amount = $form->get('amount')->getData();// get clients infos from code$clientsWeb = $this->control->restApiPOSTcURL("admin/clientsWeb", [ 'clientCode' => $clientCode ]);if ($clientsWeb!=null) {// create cbLinkToken$data = ["accountId" => $clientsWeb['accountId'],"serviceId" => $clientsWeb['serviceId'],"clientId" => $clientsWeb['clientId'],"clientCode" => $clientsWeb['clientCode'],"schedule" => 0,"amount" => $amount,"reference" => $reference,"designation" => $designation,"cbLinkType" => "paylink"];$cbLink = $this->control->restApiPOSTcURL("cblink/lienCB", $data );if ($cbLink!=null) {// "cbLinkToken" => "81524c9b27685ebb"// "cbLinkURL" => "https://allo-carte.media-t-testing.ovh/paylink/81524c9b27685ebb"// redirect vers payment controllerreturn $this->redirectToRoute('app_payment', array('cbLinkToken' => $cbLink['cbLinkToken']));} else {$parameters['errorMessage'] = "Erreur -- liaison page paiement";}} else {$parameters['errorMessage'] = "Erreur -- Votre code client est inconnu";}}$parameters['form'] = $form->createView();$parameters['appliName'] = $this->getParameter('app.appliName');$parameters['captchaSitekey'] = $this->getParameter('app.captchaSitekey');$parameters['clientIp'] = $params['clientIp'];return $this->render('home/index.html.twig', $parameters );}#[Route('/certificateUpload/{cbLinkToken}', methods: ['GET','POST'], name: 'app_certificateUpload')]public function certificateUpload(Request $request): Response{$parameters = array();$bankinglayer = array();// === +++ Controle +++ ===$params = $this->control->getParams($request);// === +++ +++ ===if (isset($params['upload'])) {$params['cbLinkToken'] = $params['upload']['cbLinkToken'];}//dd($params);// ---$lienCBToken = $this->control->restApiPOSTcURL("cblink/lienCBToken", [ 'cbLinkToken' => $params['cbLinkToken'] ]);if ($lienCBToken!=null) {// "accountId" => 1004// "serviceId" => 2726// "cbLinkId" => 1// "cbLinkDate" => "2022-10-08T14:57:57+02:00"// "cbLinkType" => "certificateUpload"// "transactionRef" => "NULL"// "cbLinkToken" => "66c5261e15e00047"// "cbLinkURL" => "https://allo-carte.media-t-testing.ovh/certificateUpload/66c5261e15e00047"$configInfos = $this->control->restApiPOSTcURL("paramaters/ConfigurationPlateforme", [ 'accountId' => $lienCBToken['accountId'], 'serviceId' => $lienCBToken['serviceId'] ]);if ($configInfos==null) {$result['uploadERR'][] = "Configuration une erreur s'est produite";$this->logger->debug( $params['pathInfo'].': ConfigurationPlateforme :: errorMessage=', $result);}if (isset($configInfos['paymentInfos'])) {$paymentInfos = $configInfos['paymentInfos'];if (isset($paymentInfos['oonex']) && ($paymentInfos['oonex']['activer'])) {$bankinglayer = $paymentInfos['oonex'];$certFile = $bankinglayer['certFile'];$privateKeyFile = $bankinglayer['privateKeyFile'];$lienCBToken['certFile'] = $bankinglayer['certFile'];$lienCBToken['privateKeyFile'] = $bankinglayer['privateKeyFile'];$this->logger->debug($params['pathInfo'].': bankinglayer=', $bankinglayer);} else {$result['uploadERR'][] = "payment 'oonex' non 'activer' ";}} else {$result['uploadERR'][] = "payments non configurés ";}if (isset($result['uploadERR'])) {$QUERY = base64_encode( json_encode($result) );return $this->redirectToRoute('app_uploadResult', array('jsonResult' => $QUERY));}$uploadForm = $this->createForm(UploadType::class, $lienCBToken);$uploadForm->handleRequest($request);if ($uploadForm->isSubmitted() && $uploadForm->isValid()) {$upload = $uploadForm->getData();$uploadCertFile = $upload['formCertFile'];$uploadKeyFile = $upload['formKeyFile'];// move to "vendor/certificates"try {$uploadCertFile->move( $this->getParameter('app.uploadCertificatesDirectory'), $uploadCertFile->getClientOriginalName() );} catch( \Exception $e ) {$result['uploadERR'][] = "Erreur émission du fichier [$certFile], ". $e->getMessage() ;$this->logger->debug( $params['pathInfo'].': uploadCertFile->move($certFile) Exception ='. $e->getMessage() );}try {$uploadKeyFile->move( $this->getParameter('app.uploadCertificatesDirectory'), $uploadKeyFile->getClientOriginalName() );} catch( \Exception $e ) {$result['uploadERR'][] = "Erreur émission du fichier [$privateKeyFile], ". $e->getMessage() ;$this->logger->debug( $params['pathInfo'].': uploadCertFile->move($privateKeyFile) Exception ='. $e->getMessage() );}$this->logger->debug($params['pathInfo']." : copie de certFile : ". $uploadCertFile->getClientOriginalName()." et keyFile : ". $uploadKeyFile->getClientOriginalName());$result['uploadOK'] = "La copie des certificats a été effectuée";$customTable = json_encode($result);$QUERY = base64_encode($customTable);return $this->redirectToRoute('app_uploadResult', array('jsonResult' => $QUERY));} else {// afficher le formulaire$parameters['uploadForm'] = $uploadForm->createView();$parameters['certFile'] = $certFile;$parameters['privateKeyFile'] = $privateKeyFile;}} else {// afficher le formulaire$parameters['uploadERR'][] = "Erreur lienCBToken, ";}return $this->render('home/certificateUpload.html.twig', $parameters);}#[Route('/uploadResult/{jsonResult}', methods: ['GET'], name: 'app_uploadResult')]public function uploadResult(Request $request): Response{$parameters = array();// === +++ Controle +++ ===$params = $this->control->getParams($request);// === +++ +++ ===$parameters = json_decode( base64_decode($params['jsonResult']), true);return $this->render('home/certificateUpload.html.twig', $parameters);}}