Soucis avec certains point relais

Résolu/Fermé
jaymbo - Modifié le 5 juil. 2022 à 17:57
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 - 6 juil. 2022 à 18:13
Bonjour,

Après avoir réussit à afficher les points relay, pour le choix de l'utilisateur, à l'aide d'un script en PHP, réalisé à l'aide de leur documentation très limitée.

Lorsque l'utilisateur choisit son point relay, les informations s'enregistrent en db, pour les récupérer après l'étape de paiement et créer la commande dans le backend de Mondial Relay.

Hors, j'ai un soucis, incompréhensible, lorsque je choisit certains point relay, cela ne fonctionne pas, j'ai droit à cette erreur (il s'agit d'un script en pur php, externe à l'application, qui sert de fichier de retour pour la plate-forme de paiement pour rediriger vers le site) :

object(stdClass)#5 (1) { ["WSI2_CreationEtiquetteResult"]=> object(stdClass)#6 (1) { ["STAT"]=> string(2) "93" } } .

$webSiteId = "monid";
$webSiteKey = "maclé";
 
// Infos récupérées de la db par requête avec un while
$search  = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'à', 'á', 'â', 'ã', 'ä', 'å', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ');
 
$replace = array('A', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y');
                            $relayPoint = $infosRelayPoint['RELAYPOINT'];
$relayPointStreet = $infosRelayPoint['RELAYSTREETANDNUMBER'];
$relayPointZip = $infosRelayPoint['RELAYPOINTZIP'];
$relayPointLocality = $infosRelayPoint['RELAYPOINTLOCALITY'];
$relayPointCountry = $infosRelayPoint['RELAYPOINTCOUNTRY'];
$userFirstName = $infosRelayPoint['USERFIRSTNAME'];
$userName = $infosRelayPoint['USERNAME'];
// Enlever l'accent pour le nom (sinon pose soucis)                    
$lastname = str_replace($search, $replace, $userName);
$firstname = str_replace($search, $replace, $userFirstName);
// Création du nom             
$name =  $lastname.' '.$firstname;
// Création de la référence client à partir des infos de l'acheteur
$nameAbbr = substr($userName, 0, 1);                   
$firstNameAbbr = substr($userFirstName, 0, 1);
                         
$searchString = " ";
$replaceString = "";       
$clientReference = strtoupper($firstNameAbbr.$nameAbbr);
$clientReference = str_replace($searchString, $replaceString, $clientReference);   
$userCountry = $infosRelayPoint['USERCOUNTRY'];
$userPhone = $infosRelayPoint['USERPHONE'];
$userEmail = $infosRelayPoint['USEREMAIL'];
// Récupérer le poids total de la commande
$totalWeight = intval($infosRelayPoint['TOTALWEIGHT']);
// Frais de livraison de la commande pour le magasin
$shippingsByShop = intval($infosRelayPoint['SHIPPINGS']);
// Déterminer le nombre de colis (maximum 30 kg pour 1 colis)
if($totalWeight <= 30000){
   $nbr_colis = 1;
} else{
  $nbr_colis = round($totalWeight / 30000);
}  
// Déterminer le CRT (Montant de contre-remboursement, en centimes dans la devise)
$crt = $totalByShop + $shippingsByShop;
 
                 
$client = new SoapClient('http://api.mondialrelay.com/Web_Services.asmx?WSDL', array('soap_version' => SOAP_1_1, 'trace' => true));
$client->soap_defencoding = 'utf-8'; 
 
// Définitions des paramètres dans un tableau pour l'appel
$paramsRelayPoint = array(
  'Enseigne' => $webSiteId,
  'ModeCol' => 'REL',
  'ModeLiv' => '24R',
  'NDossier' => 2644,
  'NClient' => $clientReference,        
  'Expe_Langage' => 'FR', 
  'Expe_Ad1' => 'NOM DE MA SOCIETE',
  'Expe_Ad3' => 'RUE DE MA SOCIETTE',
  'Expe_Ville' => "VILLE DE MA SOCIETE",
  'Expe_CP' => 'CP DE MA SOCIETE',
  'Expe_Pays' => 'BE',
  'Expe_Tel1' => '+3271549993',
  'Dest_Langage' => 'FR',
  'Dest_Ad1' => $relayPoint,
  'Dest_Ad2' => $name,
  'Dest_Ad3' => $relayPointStreet,
  'Dest_Ville' => $relayPointLocality,
  'Dest_CP' => (int)$relayPointZip,
  'Dest_Pays' => $relayPointCountry,
  'Dest_Tel1' => $userPhone,
  'Dest_Mail' => $userEmail,
  'Poids' => $totalWeight,
  'NbColis' => (int)$nbr_colis,           
  'CRT_Valeur'=> (int)$crt,
  'COL_Rel_Pays' => 'XX',
  'LIV_Rel_Pays' => 'BE',
);
 
// Génération de la clé de sécurité
$securityCode = implode("", $paramsRelayPoint);      
$securityCode .= $webSiteKey;                   $paramsRelayPoint["Security"] = strtoupper(md5($securityCode)); 
 
$labelRelayPoint = $client->__soapCall('WSI2_CreationEtiquette', array($paramsRelayPoint, 'uri'=>'http://api.mondialrelay.com/WSI2_CreationEtiquette')); 


J'ai bien respecté tous les paramètres obligatoires, vu que cela fonctionne, mais que pour certains points relay, c'est la raison pour laquelle, je n'arrive pas à comprendre pourquoi.

J'ai réussit à encoder la commande manuellement avec le point relay en question et cela fonctionne, et je ne vois pas de différence, j'ai vérifié si ce n'est pas une question de MAJUSCULE, accents, etc, j'ai tout fais, et cela ne fonctionne toujours pas.

Toute aide est la bienvenue.

Merci d'avance.

EDIT : Correction des balises de code

12 réponses

yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
5 juil. 2022 à 19:36
bonjour
quelle erreur obtiens-tu? à quelle ligne de code?
0
Bonjour,

J'obtiens cette erreur : object(stdClass)#5 (1) { ["WSI2_CreationEtiquetteResult"]=> object(stdClass)#6 (1) { ["STAT"]=> string(2) "93" } }

Le STAT doit être à 0 pour que cela fonctionne.

J'ai essayé en encodant, copié-collé du site Mondial Relay, les points relais qui ne passent pas et c'est pareil. Si je change juste le code postal et la rue, avec un point relais qui passe, ça fonctionne, même en laissant le mauvais nom de point relais.

Bien à toi.
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > jaymbo
6 juil. 2022 à 09:18
Que signifie ce 93?
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
5 juil. 2022 à 19:45
Bonjour
Fais un var_dump de ta variable$paramsRelayPoint
Et regarde ce qu'elle contient...

Essaye de remplacer ta variable par les valeurs contenu en dur dans le var_dump et regarde si tu as toujours ton souci...
Si tu ne parviens pas à déterminer quel élément cause le problème, remplace les un par un avec sa variable PHP... Puis test au fur et à mesure jusqu'à temps de trouver la variable qui pose problème.


0
Bonjour,

Le var_dump de $paramsRelayPoint donne ceci :

relay point :Q8
relay street :CHAUSSEE DU ROEULX 1063
relay zip :7021
relay locality :MONS
relay country :BE
client relay reference :RA
user relay country :BE
user relay phone :+32497621010
user relay email :***@***
total weight :700
nb colis :1
crt :375

Donc, je fais déjà cela et pour le deuxième point que tu mentionnes aussi et je ne trouve pas de solution.

Essaye de remplacer ta variable par les valeurs contenu en dur dans le var_dump et regarde si tu as toujours ton souci... --> j'ai carrément encodé les données dans le tableau en dur, toutes une à une et il y a toujours un soucis.

Précision : si je laisse en dur, le nom du point relay et que je change avec un code postal et une rue d'un point relay qui fonctionne, cela fonctionne.

Bien à toi.
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
6 juil. 2022 à 08:54
Un var_dump retourne, dans les informations, le type de variable et sa longueur ... il serait bien de nous le montrer tel quel...
et nous montrer aussi ce que ça donne avec des données qui fonctionnent..

Ensuite, j'ai l'impression que le souci vient de l'api que tu appelles ... et non du code php que tu nous montres.
Si c'est bien le cas .. il faut voir ça avec eux. nous on n'y pourra rien.
0
Je suis en train de vous faire ça, un petit instant, je vous envoie ça.
0
Cela signifie ceci :

93
Aucun élément retourné par le plan de tri
Si vous effectuez une collecte ou une livraison en Point Relais, vérifiez que les Point Relais sont bien disponibles. Si vous effectuez une livraison à domicile, il est probable que le code postal que vous avez indiqué n'existe pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
6 juil. 2022 à 09:20
93:
Aucun élément retourné par le plan de tri
Si vous effectuez une collecte ou une livraison en Point Relais, vérifiez que les Point Relais sont bien disponibles. Si vous effectuez une livraison à domicile, il est probable que le code postal que vous avez indiqué n'existe pas.
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
6 juil. 2022 à 09:23
Il me semble qu'il faut détecter l'erreur, et inviter l'utilisateur à sélectionner un autre point de livraison.
0
jaymbo > yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024
6 juil. 2022 à 09:24
Tu n'as pas compris, à cette étape, l'utilisateur à déjà choisit le point relay, il peut le choisir, mais ensuite quand il a payé, ça passe sur une page qui fait le traitement et enregistre la commande en backend Mondial Relay et pour certains points relays choisit, cela ne fonctionne pas, c'est au niveau de l'enregistrement de la commande dans leur backend et pas au niveau du choix.
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > jaymbo
6 juil. 2022 à 09:32
Comment souhaites-tu réagir à une erreur dans le backend de Mondial Relay après le paiement?
0
jaymbo > yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024
6 juil. 2022 à 09:59
Il n'y a rien à faire, tout le reste est géré par mon fichier php, qui entre autre enregistre tout en db, mets à jour, après le paiement, ce fichier crée donc aussi la commande en backend, et renvoie vers l'application, point bar, il n'y a rien d'autre, je dois juste régler ce soucis de point relay qui ne fonctionnent pas pour l'enregistrement dans le backend et mon système est totalement fonctionnel.
0
Voici le type de données qui doit être envoyé à l'API :

Méthode WSI2_CreationEtiquette

Cette méthode attend exactement les mêmes paramètres en entrée que WSI2_CreationExpedition mais retourne une étiquette au format PDF plutôt que les informations à renseigner sur l’étiquette.

Paramètres -> voir documentation API Mondial Relay

Enseigne obligatoire

8 caractères fixes
^[0-9A-Z]{2}[0-9A-Z ]{6}$
Ce paramètre est un identifiant spécifique à l'enseigne fourni dans le document de paramétrage.

ModeCol obligatoire

Liste de valeurs prédéfinies
^(CCC|CDR|CDS|REL)$

-> REL = point un point relay

ModeLiv obligatoire

Liste de valeurs prédéfinies
^(LCC|LD1|LDS|24R|24L|24X|ESP|DRI)$

-> 24R = point un point relay

NDossier facultatif

15 caractères
^(|[0-9A-Z_ -]{0,15})$
N° Dossier Enseigne, information libre. Numéro de facture par exemple

NClient facultatif

9 caractères
^(|[0-9A-Z]{0,9})$
N° Client Enseigne, information libre

Expe_Langage obligatoire

2 caractères fixes
Langue de l'expéditeur
Code ISO, pour le Français : FR
^[A-Z]{2}$

Expe_Ad1 obligatoire

32 caractères
^[0-9A-Z_\-'., /]{2,32}$
Expéditeur (Civilité Nom Prénom)
Civilités acceptées = 'MR', 'M.', 'MME', 'MLE' et 'MLLE'

Expe_Ad3 obligatoire

32 caractères
^[0-9A-Z_\-'., /]{2,32}$
Expéditeur (Rue)

Expe_Ville obligatoire

Format dépendant du pays, pour la France : 26 caractères
^[A-Z_\-' ]{2,26}$

Expe_CP obligatoire

Format dépendant du pays, pour la France :
5 caractères numériques fixes
^[0-9@]{1}[0-9]{4}$
Expéditeur (Code Postal)

Expe_Pays obligatoire

2 caractères fixes
Code ISO, pour la France : FR
^[A-Z]{2}$

Expe_Tel1 obligatoire

Format dépendant du pays, pour la France : 13 caractères numériques
^((00|\+)33|0)[0-9][0-9]{8}$

Dest_Langage obligatoire

2 caractères fixes
Codes ISO autorisés : FR, ES, NL
^[A-Z]{2}$

Dest_Ad1 obligatoire

32 caractères
^[0-9A-Z_\-'., /]{2,32}$
Civilité : ^((MR|M.|M|MME|MLE|MLLE) )$

Destinataire (Civilité Nom Prénom)
Civilités acceptées = 'MR', 'M.', 'MME', 'MLE' et 'MLLE'

Dest_Ad2 facultatif

32 caractères
^[0-9A-Z_\-'., /]{0,32}$
Destinataire (Complément)

Dest_Ad3 obligatoire

32 caractères
^[0-9A-Z_\-'., /]{2,32}$
Destinataire (Rue)

Dest_Ville obligatoire

Format dépendant du pays, pour la France : 26 caractères
^[A-Z_\-' ]{2,26}$
Destinataire (Ville)

Dest_CP obligatoire

Format dépendant du pays, pour la France :
5 caractères numériques fixes
^[0-9@]{1}[0-9]{4}$
Destinataire (Code Postal)

Dest_Pays obligatoire

2 caractères fixes
Code ISO, pour la France : FR
^[A-Z]{2}$
Destinataire (Code Pays) (Code ISO : FR, BE...)

Dest_Tel1 obligatoire et facultatif (les deux sont possibles)

Format dépendant du pays, pour la France : 13 caractères numériques
^((00|\+)33|0)[0-9][0-9]{8}$
Destinataire (Téléphone Fixe), Obligatoire pour la LD1, LDS

Dest_Mail facultatif

70 caractères
Format e-mail RFC2822
^[\w\-\.\@_]{7,70}$
Destinataire (Adresse e-mail)

Poids obligatoire

7 caractères numériques + 2 décimales en option
^[0-9]{3,7}\.?[0-9]{0,2}$
Poids en grammes

NbColis obligatoire

2 caractères numériques
^[0-9]{1,2}$

CRT_Valeur obligatoire

7 caractères numériques
^[0-9]{1,7}$
Montant de contre-remboursement, en centimes dans la devise

COL_Rel_Pays obligatoire et facultatif (les deux sont possibles)

2 caractères fixes (code ISO du pays)
^[A-Z]{2}$
Renseigner « XX » et le pays sera automatiquement reconnu en fonction de l’adresse de l’expéditeur
Obligatoire si Collecte Point Relais

LIV_Rel_Pays obligatoire et facultatif (les deux sont possibles)

2 caractères fixes
Code ISO, pour la France : FR
^[A-Z]{2}$
Obligatoire si Livraison Relais

Mon code


// Données venant dans la db, à passer au tableau d'envoi
$utf8 = array(
'/[áàâãªä]/u' => 'a',
'/[ÁÀÂÃÄ]/u' => 'A',
'/[ÍÌÎÏ]/u' => 'I',
'/[íìîï]/u' => 'i',
'/[éèêë]/u' => 'e',
'/[ÉÈÊË]/u' => 'E',
'/[óòôõºö]/u' => 'o',
'/[ÓÒÔÕÖ]/u' => 'O',
'/[úùûü]/u' => 'u',
'/[ÚÙÛÜ]/u' => 'U',
'/ç/' => 'c',
'/Ç/' => 'C',
'/ñ/' => 'n',
'/Ñ/' => 'N',
'/–/' => '-',
'/[’‘‹›‚]/u' => ' ',
'/[“”«»„]/u' => ' ',
'/ /' => ' ',
);

$relayPoint = $infosRelayPoint['RELAYPOINT'];
$relayPointNum = $infosRelayPoint['RELAYPOINT'];;
$relayPointStreet = $infosRelayPoint['RELAYSTREETANDNUMBER'];
$relayPointZip = $infosRelayPoint['RELAYPOINTZIP'];
$relayPointLocality = $infosRelayPoint['RELAYPOINTLOCALITY'];
$relayPointCountry = $infosRelayPoint['RELAYPOINTCOUNTRY'];
$userFirstName = $infosRelayPoint['USERFIRSTNAME'];
$userName = $infosRelayPoint['USERNAME'];
// Enlever l'accent pour le nom (sinon pose soucis)
$lastname = preg_replace(array_keys($utf8), array_values($utf8), $userName);
$firstname = preg_replace(array_keys($utf8), array_values($utf8), $userFirstName);
// Création du nom
$name = $lastname.' '.$firstname;
// Création de la référence client à partir des infos de l'acheteur
//$nameAbbr = substr($userName, 0, 1);
// $firstNameAbbr = substr($userFirstName, 0, 1);
$nameAbbr = mb_substr($userName,0, 1, "utf-8");
$firstNameAbbr = mb_substr($userFirstName,0, 1, "utf-8");
$searchString = " ";
$replaceString = "";
$clientReference = str_replace($searchString, $replaceString, $clientReference);
$clientReference = mb_strtoupper($firstNameAbbr.$nameAbbr, "UTF-8");
$userCountry = $infosRelayPoint['USERCOUNTRY'];
$userPhone = $infosRelayPoint['USERPHONE'];
$userEmail = $infosRelayPoint['USEREMAIL'];
// Récupérer le poids total de la commande
$totalWeight = intval($infosRelayPoint['TOTALWEIGHT']);
// Frais de livraison de la commande pour le magasin
$shippingsByShop = intval($infosRelayPoint['SHIPPINGS']);
// Déterminer le nombre de colis (maximum 30 kg pour 1 colis)
$nbr_colis = intdiv($totalWeight - 1, 30_000) + 1;
// Déterminer le CRT (Montant de contre-remboursement, en centimes dans la devise)
$crt = $totalByShop + $shippingsByShop;

// Définitions des paramètres dans un tableau pour l'appel
$paramsRelayPoint = array(
'Enseigne' => $webSiteId,
'ModeCol' => 'REL',
'ModeLiv' => '24R',
'NDossier' => $lastOrderId,
'NClient' => $clientReference,
'Expe_Langage' => 'FR',
'Expe_Ad1' => 'WUP',
'Expe_Ad3' => 'RUE DES CROCHEUX 5',
'Expe_Ville' => "FONTAINE-L'EVEQUE",
'Expe_CP' => '6140',
'Expe_Pays' => 'BE',
'Expe_Tel1' => '+3271549993',
'Dest_Langage' => 'FR',
'Dest_Ad1' => $relayPoint,
'Dest_Ad2' => $name,
'Dest_Ad3' => $relayPointStreet,
'Dest_Ville' => $relayPointLocality,
'Dest_CP' => $relayPointZip,
'Dest_Pays' => $relayPointCountry,
'Dest_Tel1' => $userPhone,
'Dest_Mail' => $userEmail,
'Poids' => $totalWeight,
'NbColis' => $nbr_colis,
'CRT_Valeur'=> $crt,
'COL_Rel_Pays' => 'XX',
'LIV_Rel_Pays' => 'BE',
);

$webSiteId = "monid";
$webSiteKey = "maclé";

$client = new SoapClient('http://api.mondialrelay.com/Web_Services.asmx?WSDL', array('soap_version' => SOAP_1_1, 'trace' => true));
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;

// Génération de la clé de sécurité
$securityCode = implode("", $paramsRelayPoint);
$securityCode .= $webSiteKey;
$paramsRelayPoint["Security"] = strtoupper(md5($securityCode));

// Création de la commande et de l'étiquette
$labelRelayPoint = $client->__soapCall('WSI2_CreationEtiquette', array($paramsRelayPoint, 'uri'=>'http://api.mondialrelay.com/WSI2_CreationEtiquette'));



Exemple de point relay qui fonctionne


var_dump de chaque valeur passée au tableau

relay point : string(18) "LA ROUE DEL BROUET"
relay street : string(21) "RUE JOSEPH WAUTERS 69"
relay zip : string(4) "7110"
relay locality : string(19) "STREPY-BRACQUEGNIES"
relay country : string(2) "BE"
client relay reference : string(2) "GC"
user relay country : string(2) "BE"
user relay phone : string(12) "+32497621010"
user relay email : string(27) "***@***"
total weight : int(700)
nb colis : int(1)
crt : int(375)


var_dump du tableau complet

array(26) { ["Enseigne"]=> string(8) "CC21W4GC" ["ModeCol"]=> string(3) "REL" ["ModeLiv"]=> string(3) "24R" ["NDossier"]=> int(2644) ["NClient"]=> string(2) "GC" ["Expe_Langage"]=> string(2) "FR" ["Expe_Ad1"]=> string(3) "WUP" ["Expe_Ad3"]=> string(18) "RUE DES CROCHEUX 5" ["Expe_Ville"]=> string(17) "FONTAINE-L'EVEQUE" ["Expe_CP"]=> string(4) "6140" ["Expe_Pays"]=> string(2) "BE" ["Expe_Tel1"]=> string(11) "+3271549993" ["Dest_Langage"]=> string(2) "FR" ["Dest_Ad1"]=> string(18) "LA ROUE DEL BROUET" ["Dest_Ad2"]=> string(16) "Cassano Gabriele" ["Dest_Ad3"]=> string(21) "RUE JOSEPH WAUTERS 69" ["Dest_Ville"]=> string(19) "STREPY-BRACQUEGNIES" ["Dest_CP"]=> string(4) "7110" ["Dest_Pays"]=> string(2) "BE" ["Dest_Tel1"]=> string(12) "+32497621010" ["Dest_Mail"]=> string(27) "***@***" ["Poids"]=> int(700) ["NbColis"]=> int(1) ["CRT_Valeur"]=> int(375) ["COL_Rel_Pays"]=> string(2) "XX" ["LIV_Rel_Pays"]=> string(2) "BE" }


Message de retour de l'API (donc, l'erreur, dans ce cas-ci)

object(stdClass)#5 (1) { ["WSI2_CreationEtiquetteResult"]=> object(stdClass)#6 (3) { ["STAT"]=> string(1) "0" ["ExpeditionNum"]=> string(8) "98962006" ["URL_Etiquette"]=> string(153) "/StickersProxy/CC21W4GC/etiquette/GetStickersExpeditionsAnonyme2?ens=CC21W4GC&expedition=98962006&lg=fr-FR&format=A4&crc=DCA851CD392C23ED5FB023774A30E41D" } }

Exemple de point relay qui ne fonctionne pas

var_dump de chaque valeur passée au tableau

relay point : string(2) "Q8"
relay street : string(23) "CHAUSSEE DU ROEULX 1063"
relay zip : string(4) "7021"
relay locality : string(4) "MONS"
relay country : string(2) "BE"
client relay reference : string(2) "RA"
user relay country : string(2) "BE"
user relay phone : string(12) "+32497621010"
user relay email : string(21) "***@***"
total weight : int(700)
nb colis : int(1)
crt : int(375)

var_dump du tableau complet

array(26) { ["Enseigne"]=> string(8) "CC21W4GC" ["ModeCol"]=> string(3) "REL" ["ModeLiv"]=> string(3) "24R" ["NDossier"]=> int(2644) ["NClient"]=> string(2) "RA" ["Expe_Langage"]=> string(2) "FR" ["Expe_Ad1"]=> string(3) "WUP" ["Expe_Ad3"]=> string(18) "RUE DES CROCHEUX 5" ["Expe_Ville"]=> string(17) "FONTAINE-L'EVEQUE" ["Expe_CP"]=> string(4) "6140" ["Expe_Pays"]=> string(2) "BE" ["Expe_Tel1"]=> string(11) "+3271549993" ["Dest_Langage"]=> string(2) "FR" ["Dest_Ad1"]=> string(2) "Q8" ["Dest_Ad2"]=> string(11) "Arpine Rene" ["Dest_Ad3"]=> string(23) "CHAUSSEE DU ROEULX 1063" ["Dest_Ville"]=> string(4) "MONS" ["Dest_CP"]=> int(7021) ["Dest_Pays"]=> string(2) "BE" ["Dest_Tel1"]=> string(12) "+32497621010" ["Dest_Mail"]=> string(21) "***@***" ["Poids"]=> int(700) ["NbColis"]=> int(1) ["CRT_Valeur"]=> int(375) ["COL_Rel_Pays"]=> string(2) "XX" ["LIV_Rel_Pays"]=> string(2) "BE" }


<gras>Message de retour de l'API (donc, l'erreur, dans ce cas-ci)


object(stdClass)#5 (1) { ["WSI2_CreationEtiquetteResult"]=> object(stdClass)#6 (1) { ["STAT"]=> string(2) "93" } }

Voilà, j'ai passé mon temps, pour être le plus clair et complet possible.
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
6 juil. 2022 à 11:00
As-tu essayé en fournissant aussi le paramètre
COL_Rel
?
0
Apparemmment, quand même toujours le même soucis mais j'analyse le truc.
0
non,je suis en train de coder pour le faire, et j'ai réglé un autre truc dans mon système. je reviens vers vous.
0
Feedback :

J'enregistre donc maintenant le numéro de point relai mais le problème, il est récupéré en string, et si je le caste en "int" avec le php, si il commence par un 0, je perds le ou les 0. Les autres données en string, je les caste, et donc je suis toujours au même point (pour le numéro de téléphone, pareil, je perds le +32 si je caste en int et il le faut).

var_dump des données

relay point : string(16) "LA FAIM DU LIVRE"
num relay point :string(6) "006813"
relay street : string(25) "RUE ZEPHIRIN FONTAINE 140"
relay zip : int(7130)
relay locality : string(6) "BINCHE"
relay country : string(2) "BE"
client relay reference : string(2) "RA"
user relay country : string(2) "BE"
user relay phone : string(12) "+32497621010"
user relay email : string(21) "***@***"
total weight : int(700)
nb colis : int(1)
crt : int(375)

var_dump du tableau

array(27) { ["Enseigne"]=> string(8) "CC21W4GC" ["ModeCol"]=> string(3) "REL" ["ModeLiv"]=> string(3) "24R" ["NDossier"]=> int(2644) ["NClient"]=> string(2) "RA" ["Expe_Langage"]=> string(2) "FR" ["Expe_Ad1"]=> string(3) "WUP" ["Expe_Ad3"]=> string(18) "RUE DES CROCHEUX 5" ["Expe_Ville"]=> string(17) "FONTAINE-L'EVEQUE" ["Expe_CP"]=> string(4) "6140" ["Expe_Pays"]=> string(2) "BE" ["Expe_Tel1"]=> string(11) "+3271549993" ["Dest_Langage"]=> string(2) "FR" ["Dest_Ad1"]=> string(16) "LA FAIM DU LIVRE" ["Dest_Ad2"]=> string(11) "Arpine Rene" ["Dest_Ad3"]=> string(25) "RUE ZEPHIRIN FONTAINE 140" ["Dest_Ville"]=> string(6) "BINCHE" ["Dest_CP"]=> int(7130) ["Dest_Pays"]=> string(2) "BE" ["Dest_Tel1"]=> string(12) "+32497621010" ["Dest_Mail"]=> string(21) "***@***" ["Poids"]=> int(700) ["NbColis"]=> int(1) ["CRT_Valeur"]=> int(375) ["COL_Rel_Pays"]=> string(2) "XX" ["COL_Rel"]=> string(6) "006813" ["LIV_Rel_Pays"]=> string(2) "BE" }

Retour

object(stdClass)#5 (1) { ["WSI2_CreationEtiquetteResult"]=> object(stdClass)#6 (1) { ["STAT"]=> string(2) "93" } }

Si je met en dur le numéro de point relay , en int :

// Définitions des paramètres dans un tableau pour l'appel
$paramsRelayPoint = array(
'Enseigne' => $webSiteId,
'ModeCol' => 'REL',
'ModeLiv' => '24R',
'NDossier' => 2644,
'NClient' => $clientReference,
'Expe_Langage' => 'FR',
'Expe_Ad1' => 'WUP',
'Expe_Ad3' => 'RUE DES CROCHEUX 5',
'Expe_Ville' => "FONTAINE-L'EVEQUE",
'Expe_CP' => '6140',
'Expe_Pays' => 'BE',
'Expe_Tel1' => '+3271549993',
'Dest_Langage' => 'FR',
'Dest_Ad1' => $relayPoint,
'Dest_Ad2' => $name,
'Dest_Ad3' => $relayPointStreet,
'Dest_Ville' => $relayPointLocality,
'Dest_CP' => $relayPointZip,
'Dest_Pays' => $relayPointCountry,
'Dest_Tel1' => $userPhone,
'Dest_Mail' => $userEmail,
'Poids' => $totalWeight,
'NbColis' => $nbr_colis,
'CRT_Valeur'=> $crt,
'COL_Rel_Pays' => 'XX',
'COL_Rel' => 006813,
'LIV_Rel_Pays' => 'BE',
);

Cela produit cette erreur : Parse error: Invalid numeric literal in /home/wupbeiumsw/www/api.wup/public/postPayzen.php on line 201.

Et si je le laisse en string, je suis toujours au même point.

Il faudrait réussir à passer un int pour ce numéro de point relay, en php, si c'est possible, car je n'ai pas l'impression, en espérant que le soucis vient de là.

Je continue à chercher ....
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
6 juil. 2022 à 14:04
Tu reçois le numéro de point relais en string, pourquoi passer par un int?

As-tu essayé en fournissant aussi le paramètre
LIV_Rel
?
0
Parce que c'est le mysql qui le renvoit directement en string, malgré qu'il est en int dans la db.
De plus, j'ai capté que même si je mets le mauvais nom de pt relay et le mauvaise rue, si je mets le code postal et la ville d'un point relay qui passe, ça fonctionne. un truc de ouf....
0
jaymbo > jaymbo
6 juil. 2022 à 14:11
ps : ah non, j'ai oublié Liv_rel, je teste toute de suite mais je pense pas que ça va changer quelque chose...
0
jaymbo > jaymbo
6 juil. 2022 à 14:14
et bien, tu sais quoi, j'ai parlé pour faire du vent, je viens de tester et ça marche, reste à voir si ça marche avec tous, je teste !!! merci !!!
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > jaymbo
6 juil. 2022 à 14:15
Pourquoi ne pas enregistrer le numéro de point relais comme texte dans la db?
0
jaymbo > yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024
6 juil. 2022 à 14:16
C'est ce que j'avais fais au début, mais je pensais qu'il fallait absolument un int
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
6 juil. 2022 à 14:17
Je pense que tu confonds l'adresse du point relais et l'adresse du destinataire, donc du client.
0
non, c'est bien ce que je fais, regarde :

relay point : string(16) "LA FAIM DU LIVRE"
num relay point :string(6) "006813"
relay street : string(25) "RUE ZEPHIRIN FONTAINE 140"
relay zip : int(7130)
relay locality : string(6) "BINCHE"
relay country : string(2) "BE"
client relay reference : string(2) "RA"
user relay country : string(2) "BE"
user relay phone : string(12) "+32497621010"
user relay email : string(21) "***@***"
total weight : int(700)
nb colis : int(1)
crt : int(375)

tous les point, relay street, etc, ce sont les coordonnées du point relay choisit, par contre, ça a fonctionné, mais j'ai oublié de changer le cp en dur, donc je reteste.


array(23) { ["Enseigne"]=> string(8) "CC21W4GC" ["ModeCol"]=> string(3) "REL" ["ModeLiv"]=> string(3) "24R" ["Expe_Langage"]=> string(2) "FR" ["Expe_Ad1"]=> string(3) "WUP" ["Expe_Ad3"]=> string(18) "RUE DES CROCHEUX 5" ["Expe_Ville"]=> string(17) "FONTAINE-L'EVEQUE" ["Expe_CP"]=> int(6140) ["Expe_Pays"]=> string(2) "BE" ["Expe_Tel1"]=> string(11) "+3271549993" ["Dest_Langage"]=> string(2) "FR" ["Dest_Ad1"]=> string(16) "LA FAIM DU LIVRE" ["Dest_Ad3"]=> string(25) "RUE ZEPHIRIN FONTAINE 140" ["Dest_Ville"]=> string(6) "BINCHE" ["Dest_CP"]=> int(7000) ["Dest_Pays"]=> string(2) "BE" ["Poids"]=> int(700) ["NbColis"]=> int(1) ["CRT_Valeur"]=> int(375) ["COL_Rel_Pays"]=> string(2) "XX" ["COL_Rel"]=> string(6) "006813" ["LIV_Rel_Pays"]=> string(2) "BE" ["LIV_Rel"]=> string(6) "006813" }
0
jaymbo > jaymbo
6 juil. 2022 à 14:28
2ème test avec un point relay qui ne passait, ça fonctionne
0
jaymbo > jaymbo
6 juil. 2022 à 14:30
test avec un qui fonctionnait, ça fonctionne toujours aussi, ça à l'air résolu, merci beaucoup à tous pour votre aide.
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > jaymbo
6 juil. 2022 à 18:13
Je pense que
Dest_Ad1
, ce n'est pas l'adresse du point relais, mais l'adresse du client.
0
J'ai refais le test et ça fonctionne toujours, il faut que j'essaie avec un autre qui ne passait et un qui passait, si ça fonctionne, c bon
0