Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment dois-je appeler l'API

7 juillet 2020 à 10:35:59

Bonjour,

Dans mon application j'ai besoin de faire appel à l'API de Mondial Relay.

Mais j'ai du mal étant donné que c'est pour moi.

Voici ma fonction :

appelAPI : function(req, res){
        var MR_WebSiteId="BDTEST12";
        var MR_WebSiteKey = "MRT_2020";

        var url = 'http://api.mondialrelay.com/Web_Services.asmx?WSDL';
        var params =  {
            'Enseigne' : MR_WebSiteId,
            'Pays' : "FR",
            //'NumPointRelais' => "",
            'Ville' : "Garges-lès-Gonesse",
            'CP' : "95140",
            'Latitude' : "",
            'Longitude' : "",
            'Taille' : "",
            'Poids' : "",
            'Action' : "",
            'DelaiEnvoi' : "0",
            'RayonRecherche' : "20",
            //'TypeActivite' => "",
            //'NACE' => "",
            'NombreResultats' : "20",

        };

        var code = "";

        for(var i in params){
            code += params[i] + " ";

        }
        

        //code = Enseigne.concat(Pays, Ville, CP, Latitude, Longitude, Taille,Poids, Action, DelaiEnvoi, RayonRecherche);
        code = code.concat(MR_WebSiteKey);
        //params["Security"] = toUpperCase(md5(code));
        var security = code.toUpperCase();
        params["Security"] = md5(security);
        


        /*var result = client.call(
            'WSI4_PointRelais_Recherche',
            params,
            'http://api.mondialrelay.com/',
            'http://api.mondialrelay.com/WSI4_PointRelais_Recherche'

        );*/

        soap.createClient(url,params, function (err, client) {
            //Your soap call here
            client.MyFunction(params, function(err, result) {
                console.log(result);
            });
        });
        /*var result = http.request(client, function(res) {
            'WSI4_PointRelais_Recherche',
            params,
            'http://api.mondialrelay.com/',
            'http://api.mondialrelay.com/WSI4_PointRelais_Recherche'
           
          }).end();*/

       // console.log(result);

               
    }

De base dans la documentation de l'API y a la fonction en PHP mais j'essaye de la traduire en NodeJS mais je n'y arrive pas.

Voici le code en PHP :

<?php
require_once('lib/nusoap.php');
// Global Settings definition
// Définition des paramètres globaux
$MR_WebSiteId = "BDTEST12";
$MR_WebSiteKey = "MRT_2012";
$client = new nusoap_client("http://api.mondialrelay.com/Web_Services.asmx?WSDL", true);
$client->soap_defencoding = 'utf-8';
// We define the parameters as a string array. Each Key/Val represents a parameter of the soap call
// On défini les paramètres dans un tableau de chaînes. Chaque paire Clé/Valeur est un paramètre de
l'appel SOAP
$params = array(
 'Enseigne' => $MR_ WebSiteId,
 'Pays' => "FR",
 //'NumPointRelais' => "",
 'Ville' => "",
 'CP' => "75010",
 'Latitude' => "",
 'Longitude' => "",
 'Taille' => "",
 'Poids' => "",
 'Action' => "",
 'DelaiEnvoi' => "0",
 'RayonRecherche' => "20",
 //'TypeActivite' => "",
 //'NACE' => "",
 'NombreResultats' => "20",
);
// We generate the request's security code
// On génère la clé de sécurité de l'appel
$code = implode("", $params);
$code .= $MR_WebSiteKey;
$params["Security"] = strtoupper(md5($code));
// We make the call and load it in the $result var
// On réalise l'appel et stocke le résultat dans la variable $result
$result = $client->call(
 'WSI4_PointRelais_Recherche',
 $params,
 'http://api.mondialrelay.com/',
 'http://api.mondialrelay.com/WSI4_PointRelais_Recherche'
);
// We check their is no error during the process
// On vérifie qu'il n'y a pas eu d'erreur
if ($client->fault)
{
 echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
 print_r($result);
 echo '</pre>';
}
else
{
 $err = $client->getError();
 if ($err) { echo '<h2>Error</h2><pre>' . $err . '</pre>'; }
 else
 {
 echo '<h2>Result</h2><pre>';
 print_r($result);
 echo '</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->getDebug(), ENT_QUOTES) . '</pre>';
?>

Je vous remercie.


  • Partager sur Facebook
  • Partager sur Twitter