Soucis avec certains point relais
Résolu/Fermé
jaymbo
-
Modifié le 5 juil. 2022 à 17:57
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 - 6 juil. 2022 à 18:13
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 - 6 juil. 2022 à 18:13
A voir également:
- C'est quoi le zip code mondial relay
- Point de restauration - Guide
- Point de suite word - Guide
- Point d'exclamation à l'envers ✓ - Forum Matériel & Système
- Créer une carte avec des points - Guide
- Point vert snapchat - Forum Snapchat
12 réponses
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
5 juil. 2022 à 19:36
5 juil. 2022 à 19:36
bonjour
quelle erreur obtiens-tu? à quelle ligne de code?
quelle erreur obtiens-tu? à quelle ligne de code?
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
5 juil. 2022 à 19:45
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.
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.
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.
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.
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
6 juil. 2022 à 08:54
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.
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.
Je suis en train de vous faire ça, un petit instant, je vous envoie ça.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
6 juil. 2022 à 09:20
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.
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.
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
6 juil. 2022 à 09:23
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.
jaymbo
>
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
6 juil. 2022 à 09:24
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.
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
jaymbo
6 juil. 2022 à 09:32
6 juil. 2022 à 09:32
Comment souhaites-tu réagir à une erreur dans le backend de Mondial Relay après le paiement?
jaymbo
>
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
6 juil. 2022 à 09:59
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.
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
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.
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.
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
6 juil. 2022 à 11:00
6 juil. 2022 à 11:00
As-tu essayé en fournissant aussi le paramètre
COL_Rel?
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.
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 ....
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 ....
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
6 juil. 2022 à 14:04
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
As-tu essayé en fournissant aussi le paramètre
LIV_Rel?
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
jaymbo
6 juil. 2022 à 14:15
6 juil. 2022 à 14:15
Pourquoi ne pas enregistrer le numéro de point relais comme texte dans la db?
jaymbo
>
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
6 juil. 2022 à 14:16
6 juil. 2022 à 14:16
C'est ce que j'avais fais au début, mais je pensais qu'il fallait absolument un int
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
6 juil. 2022 à 14:17
6 juil. 2022 à 14:17
Je pense que tu confonds l'adresse du point relais et l'adresse du destinataire, donc du client.
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" }
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" }
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
jaymbo
6 juil. 2022 à 18:13
6 juil. 2022 à 18:13
Je pense que
Dest_Ad1, ce n'est pas l'adresse du point relais, mais l'adresse du client.
6 juil. 2022 à 08:52
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.
6 juil. 2022 à 09:18