Exemple d'implémentation du client en PHP4 (basé sur l'utilisation de la librairie NuSOAP)


<?php

        /*
                Cet exemple est basé sur l'utilisaton de la librairie nusoap  disponible à l'URL suivante:
                http://sourceforge.net/projects/nusoap/
               
        */
        require_once('../lib/nusoap.php');

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

        /* Création du client SOAP */
        $client = new nusoap_client("http://code.spartime.com/axis2/services/EncodeurSpartimeService?wsdl", true);
        checkError($client);
       
        /* Login et mot de passe obligatoires */
        $client->setCredentials("test", "test");
        checkError($client);
       
        /* Initialisation des paramètres cryptographiques */
        /* Cette opération DOIT être réalisée avant tout calcul de code */
        $client->call('setCryptoParameters', array($portier));
        checkError($client);
       
        /* Calcul du code gestionnaire */
        $result = $client->call('getCodeGestionnaire',array('userName'=>'Jean Dupont'));
        checkError($client);
        echo('Code Gestionnaire: '.$result['return']."<br>");
       
        /* Calcul du code installateur */
        $result = $client->call('getCodeInstallateur',array(array('ISODate' => "20081231T0000",'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code installateur: ".$result['return']."<br>");
       
        /* Code de date à date */
        $result = $client->call('getCodeDateADate',array(array('ISOStart' => "20080223T0000",'ISOEnd' => "20090707T2359",'unique' => false, 'command' => 1,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code de date à date: ".$result['return']."<br>");
       
        /* Code fonction ajout d'opposition */
        $result = $client->call('getCodeFonctionAddOpposition',array(array('code' => "123456",'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction ajout d'opposition: ".$result['return']."<br>");
               
        /*  */                 
        $result = $client->call('getCodeFonctionDelOpposition',array(array('code' => "123456",'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction  suppression d'opposition: ".$result['return']."<br>");
       
        /* Code fonction ajout d'un code perso */
        $result = $client->call('getCodeFonctionAddPerso',array(array('code' => "1234", 'command' => 1,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction ajout d'un code perso: ".$result['return']."<br>");
       
        /* Code fonction suppression d'un code perso */
        $result = $client->call('getCodeFonctionDelPerso',array(array('code' => "1234",'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction suppression d'un code perso: ".$result['return']."<br>");
       
        /* Code fonction suppression d'une activité */
        $result = $client->call('getCodeFonctionDelActivite',array(array('activite' => 0,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction suppression d'une activité: ".$result['return']."<br>");

        /* Code fonction ajout d'un créneau */
        $result = $client->call('getCodeFonctionAddCreneau',array(array('activite' => 0, 'start' => 0, 'end' => 671,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction ajout d'un créneau: ".$result['return']."<br>");
       
        /* Code fonction modification d'un créneau */
        $result = $client->call('getCodeFonctionModCreneau',array(array('creneau' => 0, 'start' => 0, 'end' => 671,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction modification d'un créneau: ".$result['return']."<br>");
       
        /* Code fonction suppression d'un créneau */
        $result = $client->call('getCodeFonctionDelCreneau',array(array('creneau' => 0,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction suppression d'un créneau: ".$result['return']."<br>");
       
        /* Code fonction mise à l'heure */
        $result = $client->call('getCodeFonctionSetDateTime',array(array('ISODate' => "20081231T1410",'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code fonction mise à l'heure: ".$result['return']."<br>");
       
        /* Code périodique jour V2 */
        $result = $client->call('getCodePeriodiqueJourV2',array(array('user' => 0,'ISOStart' => "20080101T0800",'duration' => 10,'nbTrimestres' => 3,'joursActifs' => 3,'command' => 1,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code périodique jour V2: ".$result['return']."<br>");
       
        /* Code instantané */
        $result = $client->call('getCodeInstantane',array(array('ISODate' => "20090102T1427",'delta' => 1, 'unique' => false, 'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code instantané: ".$result['return']."<br>");
       
        /* Code 1 heure */
        $result = $client->call('getCodeHeure',array(array('ISODateStart' => "20090827T1400",'ISODateEnd' => "20090827T1459",'user' => 0, 'unique' => false, 'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code 1 heure: ".$result['return']."<br>");
       
        /* Code 1 heure */
        $result = $client->call('getCodeHeure',array(array('ISODateStart' => "20090827T1400",'ISODateEnd' => "20090827T1459",'user' => 0, 'unique' => false, 'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code 1 heure: ".$result['return']."<br>");
       
        /* Code 2 heures */
        $result = $client->call('getCodeHeure',array(array('ISODateStart' => "20090827T1500",'ISODateEnd' => "20090827T1659",'user' => 0,'unique' => false,'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code 2 heures: ".$result['return']."<br>");
       
        /* Code 24 heures */
        $result = $client->call('getCodeHeure',array(array('ISODateStart' => "20090827T1500",'ISODateEnd' => "20090828T1459",'user' => 0,'unique' => false,'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code 24 heures: ".$result['return']."<br>");
       
        /* Code 1/2 journée */
        $result = $client->call('getCodeJour',array(array('ISODateStart' => "20090827T1200",'ISODateEnd' => "20090827T2359",'user' => 0,'unique' => false,'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code 1/2 journée: ".$result['return']."<br>");
       
        /* Code 1/2 journée */
        $result = $client->call('getCodeJour',array(array('ISODateStart' => "20090827T0000",'ISODateEnd' => "20090827T1159",'user' => 0,'unique' => false,'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code 1/2 journée: ".$result['return']."<br>");
       
        /* Code 1 jour */
        $result = $client->call('getCodeJour',array(array('ISODateStart' => "20090827T0000",'ISODateEnd' => "20090827T2359",'user' => 0,'unique' => false,'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code 1 jour: ".$result['return']."<br>");
       
        /* Code 31 jours */
        $result = $client->call('getCodeJour',array(array('ISODateStart' => "20090801T0000",'ISODateEnd' => "20090831T2359",'user' => 0,'unique' => false,'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo("Code 31 jours: ".$result['return']."<br>");

        $result = $client->call('getCodePeriodiqueHebdo',array(array('user' => 0,'ISOStart' => "20090801T0000",'duration'=>2,'unique' => false,'command' => 3,'userName'=>'Jean Dupont')));
        checkError($client);
        echo(utf8_decode("Code périodique hebdo: ").$result['return']."<br>");
       
        function checkError($client){
                if ($client->getError()) {
                        echo('<h2>Error</h2><pre>' .$client->getError(). '</pre>');
                        echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
                        echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
                        echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
                        exit(-1);
                }
        }

?>