<?php

        /* Définition d'un portier PersoCode */
        $portier = array(
                                /*'key' =>*/ '0114A25205990CF5D2E6D7628036192B',
                                /*'iv' =>*/ 1,
                                /*'profil' =>*/ '0202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202',
                                /*'base' =>*/ 14
                        );


        try{
                /* Création d'un client SOAP SSL */
                /* Attention, pour pouvoir utiliser SSL, PHP5 requiert OpenSSL */
                $client = new SoapClient("https://code.spartime.com/axis2/services/EncodeurSpartimeService?wsdl",array( "trace"=>true,"login"=>"test","password"=>"test"));

                /* Initialisation des paramètres cryptographiques */
                /* Cette opération DOIT être réalisée avant tout calcul de code */
                $client->setCryptoParameters(new SoapVar($portier,XSD_ANYTYPE));
               
                /* Calcul du code Gestionnaire */
                $response = $client->getCodeGestionnaire(new SoapVar(array("M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code gestionnaire: ".$response->return."<br>");
               
                /* Calcul du code installateur */
                $response = $client->getCodeInstallateur(new SoapVar(array("20081231T0000","M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code installateur: ".$response->return."<br>");
               
                /* Code de date à date */
                $response = $client->getCodeDateADate(new SoapVar(array("20080223T0000","20090707T2359",false, 1,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code de date à date: ".$response->return."<br>");
               
                /* Code fonction ajout d'opposition */
                $response = $client->getCodeFonctionAddOpposition(new SoapVar(array("123456","M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code fonction ajout d'opposition: ".$response->return."<br>");
               
                /*  */                 
                $response = $client->getCodeFonctionDelOpposition(new SoapVar(array("123456","M. Jean Dupont"),XSD_ANYTYPE));
               echo("Code fonction  suppression d'opposition: ".$response->return."<br>");
               
                /* Code fonction ajout d'un code perso */
                $response = $client->getCodeFonctionAddPerso(new SoapVar(array("1234", 1,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code fonction ajout d'un code perso: ".$response->return."<br>");
       
                /* Code fonction suppression d'un code perso */
                $response = $client->getCodeFonctionDelPerso(new SoapVar(array("1234","M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code fonction suppression d'un code perso: ".$response->return."<br>");
               
                /* Code fonction suppression d'une activité */
                $response = $client->getCodeFonctionDelActivite(new SoapVar(array(0,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code fonction suppression d'une activité: ".$response->return."<br>");

                /* Code fonction ajout d'un créneau */
                $response = $client->getCodeFonctionAddCreneau(new SoapVar(array(0, 0, 671,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code fonction ajout d'un créneau: ".$response->return."<br>");
               
                /* Code fonction modification d'un créneau */
                $response = $client->getCodeFonctionModCreneau(new SoapVar(array(0, 0, 671,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code fonction modification d'un créneau: ".$response->return."<br>");
       
                /* Code fonction suppression d'un créneau */
                $response = $client->getCodeFonctionDelCreneau(new SoapVar(array(0,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code fonction suppression d'un créneau: ".$response->return."<br>");
               
                /* Code fonction mise à l'heure */
                $response = $client->getCodeFonctionSetDateTime(new SoapVar(array("20081231T1410","M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code fonction mise à l'heure: ".$response->return."<br>");
               
                /* Code périodique jour V2 */
                $response = $client->getCodePeriodiqueJourV2(new SoapVar(array(0,"20080101T0800",10,3,3,1,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code périodique jour V2: ".$response->return."<br>");
               
                /* Code instantané */
                $response = $client->getCodeInstantane(new SoapVar(array("20090102T1427",1,false,3,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code instantané: ".$response->return."<br>");
               
                /* Code 1 heure */
                $response = $client->getCodeHeure(new SoapVar(array("20090827T1400","20090827T1459",1,false,3,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code 1 heure: ".$response->return."<br>");
               
                /* Code 2 heures */
                $response = $client->getCodeHeure(new SoapVar(array("20090827T1500","20090827T1659",1,false,3,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code 2 heures: ".$response->return."<br>");
               
                /* Code 24 heures */
                $response = $client->getCodeHeure(new SoapVar(array("20090827T1500","20090828T1459",1,false,3,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code 24 heures: ".$response->return."<br>");
               
                /* Code 1/2 journée */
                $response = $client->getCodeJour(new SoapVar(array("20090827T1200","20090827T2359",1,false,3,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code 1/2 journée: ".$response->return."<br>");
               
                /* Code 1/2 journée */
                $response = $client->getCodeJour(new SoapVar(array("20090827T0000","20090827T1159",1,false,3,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code 1/2 journée: ".$response->return."<br>");
               
                /* Code 1 jour */
                $response = $client->getCodeJour(new SoapVar(array("20090827T0000","20090827T2359",1,false,3,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code 1 jour: ".$response->return."<br>");
               
                /* Code 31 jours */
                $response = $client->getCodeJour(new SoapVar(array("20090801T0000","20090831T2359",1,false,3,"M. Jean Dupont"),XSD_ANYTYPE));
                echo("Code 31 jours: ".$response->return."<br>");
               
                /* Calcul et affichage d'un QRCode contenant 5 codes destinés à 3 portiers */
                $client->dropCodesQR();
                $client->addCodeQR(new SoapVar(array(1, '12345'), XSD_ANYTYPE));
                $client->addCodeQR(new SoapVar(array(1, '23456'), XSD_ANYTYPE));
                $client->addCodeQR(new SoapVar(array(2, '34567'), XSD_ANYTYPE));
                $client->addCodeQR(new SoapVar(array(2, '45678'), XSD_ANYTYPE));
                $client->addCodeQR(new SoapVar(array(3, '56789'), XSD_ANYTYPE));
                $result = $client->getQRCode();
                echo '<img src="data:image/png;base64,'.$result->return.'"/>';
               
        }catch(Exception $e){
                echo("<br>Une erreur est survenue:<br>".$e->getMessage(new SoapVar(array("M. Jean Dupont"),XSD_ANYTYPE)));
        }
?>