La Poste - Société Anonyme au capital de 3 800 000 000 euros - 356 000 000 RCS PARIS
Siège social : 44 BOULEVARD DE VAUGIRARD - 75757 PARIS CEDEX 15 - Tél. : +33 (0)1 55 44 00 00
Solution Simplicité – Choix de livraison
Offre Entreprises
Page « Choix des Modes de Livraison » Colissimo VERSION MOBILE
Document technique – Version Novembre 2017 Guide d’intégration Page « Choix des Modes de Livraison » version Mobile
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
2
Suivi des Changements
Révision Commentaires
15/11/2012 Version initiale
21/12/2012 Mise à jour du paragraphe III-6 Paramètres de retour : les frais d’expédition
sont envoyés avec un point
08/04/2013 Evolution : ajout d’un nouveau paramètre d’appel permettant d’appliquer un
tarif spécifique aux livraisons en relais commerçants
11/2015 Mise à jour branding et naming.
Suppression des informations liées à ma consignes cityssimo (fin le
28/8/2015) et mon rendez-vous (fin le 30/9/2015) suite à l’arrêt de ces
services
04/2016 Ajout des informations liées à l’offre Colissimo International
01/2017 p6 : Mise à jour de la copie d’écran du Back Office
p24 : Mise à jour du chapitrage
p65 : Mise à jour des informations liées à l’offre Colissimo International
(ajout de l’Autriche et du Portugal)
10-11/2017 Mise à jour du chapitre V.3. La liste des pays éligible à l’offre Colissimo
Europe
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
3
I. Introduction .................................................................................................. 5
I.1 Objet du document ........................................................................................ 5
I.2 Pré-requis .................................................................................................... 5
I.3 Terminologie ................................................................................................. 7
II. Contacts ....................................................................................................... 8
III. Solution « Modes de livraison » version mobile.................................................. 9
III.1 Généralités ............................................................................................ 9
III.2 Présentation de la solution ..................................................................... 10
III.3 Protocole ............................................................................................. 14
III.4 Cookie ................................................................................................. 14
III.5 Paramètres d’appel ............................................................................... 15 III.5.1 Paramètres d’appel à transmettre en méthode GET ................................... 15 III.5.2 Paramètres d’appel à transmettre en méthode POST ................................. 15 III.5.3 Contrôle de la longueur du paramètre ..................................................... 19 III.5.4 Votre Identifiant FO .............................................................................. 19 III.5.5 Informations sur le destinataire : Civilité du destinataire ........................... 19 III.5.6 Champ d’adresse du destinataire ............................................................ 19 III.5.7 Informations sur la commande : délai de préparation de la commande ........ 20 III.5.8 Frais d’expédition ................................................................................. 20 III.5.9 Numéro de transaction .......................................................................... 21 III.5.10 Poids du colis ....................................................................................... 22 III.5.11 Paramètre Première commande .............................................................. 22 III.5.12 Paramètre plus chargeur ....................................................................... 22 III.5.13 Numéro de version ............................................................................... 22 III.5.14 International ........................................................................................ 23 III.5.15 Signature ............................................................................................ 23 III.5.16 Calcul de la signature en entrée ............................................................. 24 III.5.17 URLs de retour : URL de retour « Validation » .......................................... 25 III.5.18 URL de retour « Echec » ........................................................................ 25
IV. Intégration de la solution ............................................................................. 27
IV.1 Préambule ........................................................................................... 27
IV.2 Appel depuis un site web mobile ............................................................. 27 IV.2.1 Exemple de transmission avec les paramètres obligatoires ......................... 27 IV.2.2 Exemple de transmission avec l’ensemble des paramètres ......................... 28
IV.3 Appel depuis une application native ........................................................ 29 IV.3.1 Intégration dans une application Android ................................................. 30 IV.3.2 Intégration dans une application iOS ....................................................... 31 IV.3.3 Retour vers l’application du e-marchand .................................................. 34
IV.4 Gestion des erreurs ............................................................................... 34 IV.4.1 Messages d’erreur affichés par la solution ................................................ 34 IV.4.2 Codes erreur retournés au chargeur sur l’URL retour Echec ........................ 36 IV.4.3 Codes d’information retournés au chargeur sur l’URL retour Validation ........ 36
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
4
IV.5 Indisponibilité et continuité du processus de commande ............................ 38 IV.5.1 Serveur applicatif hors service ................................................................ 38 IV.5.2 Continuité du processus de commande .................................................... 38 IV.5.3 Page d’erreur interne ............................................................................ 39
IV.6 Paramètres de Retour ........................................................................... 40 IV.6.1 Retours sur l’URL retour Validation .......................................................... 40 IV.6.2 Retour pour les modes de livraison à Domicile .......................................... 40 IV.6.3 Signature en sortie pour les modes de livraison à Domicile ........................ 44 IV.6.4 Retour pour les modes de livraison en Point Retrait ................................... 47 IV.6.5 Signature en sortie pour les modes de livraison en Point Retrait ................. 53 IV.6.6 Informations de routage ........................................................................ 55 IV.6.7 Retours sur l’URL retour Echec ............................................................... 56 IV.6.8 Signature en sortie en cas d’échec .......................................................... 58
V. Annexes ..................................................................................................... 60
V.1 Annexe 1 : Champs de la solution « Modes de livraison » version mobile ........ 60
V.2 Annexe 2 : Exemple de calcul de signature SHA .......................................... 61
V.3 Annexe 3 : Liste des pays éligibles à l’offre Colissimo Europe (international) et codes réseaux et produits correspondants aux livraisons en points retrait ............... 66
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
5
I. INTRODUCTION
I.1 Objet du document
Directement accessible depuis votre site web mobile ou application mobile, la solution « Modes
de livraison » version mobile permet à vos clients de choisir leur mode de livraison.
Elle comprend 2 modules :
• Le Back Office « Mode de livraison » version mobile (BO) : il vous permet de paramétrer la
solution.
• La solution Front Office (FO) : il s’agit de la solution web mobile de La Poste - Colissimo vers
laquelle vous redirigez votre client afin qu’il choisisse son mode de livraison en fin de
processus d’achat.
Ce document décrit uniquement les modalités de mise en œuvre de la solution Front Office.
I.2 Pré-requis
La mise en œuvre du Front Office de la solution ne pourra être réalisée qu’après avoir
correctement paramétré le Back Office « Modes de livraison » version mobile.
Ce Back Office est accessible sur www.laposte.fr/colissimo-entreprise à l’aide des login et mot
de passe reçus par e-mail lors de votre souscription à l’offre Colissimo.
Son guide d’utilisation est à votre disposition dans la rubrique Documents Utiles
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
6
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
7
I.3 Terminologie
Terme Description
Chargeur E-marchand client de La Poste - Colissimo
Site marchand Site web mobile ou application mobile du chargeur
Acheteur Mobinaute, client du chargeur
Point Retrait Lieu de livraison Relai Pickup, dans lequel le colis est mis à
disposition du destinataire.
Jours ouvrables Du lundi au vendredi hors jours fériés
Caractère alphanumérique Désigne :
les caractères numériques
les caractères alphabétiques (minuscules et
majuscules),
les caractères accentués minuscules et 'ç'
ainsi que les caractères spéciaux à l’exception de : ;€~#{([|\^)]=}$¤£%µ*§!°²
sauf autre mention explicite
SHA1 Fonction de hachage cryptographique. Permet la
sécurisation de l’appel et de la réponse de la solution
« Modes de livraison » version mobile
Jquery Mobile Framework de développement mobile, JQuery Mobile est
une bibliothèque Javascript adaptée à la création de sites
web ou d’applications à destination de smartphones ou
tablettes. http://jquerymobile.com/blog/2012/07/12/jqm-
1-1-1/
User Agent Information transmise par un navigateur web à de chaque
connexion. Elle permet d’identifier ce dernier ainsi que le
système d’exploitation sur lequel il est exécuté.
Webview Composant de programmation permettant l’affichage d’une page web dans une application mobile en prenant en compte son
contenu HTML et CSS.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
8
II. CONTACTS
La Poste - Colissimo met à votre disposition un support, que nous vous invitons à contacter
dans les cas suivants :
Etude préalable
&
Déploiement de la solution
Pour toute question technique relative à la solution
décrite dans ce document :
Le Support Solutions Client,
au 0241.742.088,
du lundi au vendredi, de 9h à 18h.
Pour confirmer la solution retenue :
Votre interlocuteur commercial Colissimo
Phase opérationnelle,
après déploiement de la solution
En cas de panne, d’anomalie ou d’incident :
Le Centre de Service,
au 0825.086.005,
du lundi au vendredi, de 8h à 18h.
Prononcer « Incident », puis « Solutions
Web », à l’énoncé des choix disponibles.
La disponibilité et le bon fonctionnement de nos
systèmes sont supervisés, même en dehors de ces
heures.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
9
III. SOLUTION « MODES DE LIVRAISON » VERSION MOBILE
III.1 Généralités
La solution est accessible à partir de votre site marchand web mobile ou de votre application
native (iOS, Android).
La solution utilise le framework Jquery Mobile qui prend en compte le UserAgent afin de
réaliser les adaptations propres aux systèmes d’exploitation.
Deux formats sont prévus : smartphone et tablette. Le format est déterminé en fonction de la
taille de l’écran du terminal utilisé par l’acheteur.
La solution est appelée à partir de l’url : http ou https://ws-mobile.colissimo.fr.
L’accès est conditionné par la fourniture des informations suivantes :
• Identifiant FO fourni par La Poste - Colissimo dans votre Back-Office (cf. Guide d’utilisation
du Back-Office)
• Données personnelles de l’acheteur
• Données associées à la commande
Signature SHA1 à partir de la clé de cryptage fournie par La Poste - Colissimo dans votre
Back-Office (cf. Guide d’utilisation du Back-Office)
Si les informations transmises sont incorrectes, l’acheteur est redirigé vers l’URL retour échec
de votre site marchand. Un code erreur vous est alors transmis dans les paramètres de retour
(voir la liste des codes erreur retour au paragraphe III.4.2 Codes erreur retournés au
chargeur sur l’URL retour Echec0).
Si les informations transmises sont correctes l’acheteur est redirigé vers la solution « Modes
de livraison » version mobile afin de choisir un mode de livraison.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
10
III.2 Présentation de la solution
Pour chaque écran, les 2 formats sont présentés ici : format smartphone et format tablette.
1. Saisie des informations personnelles
Cette page est facultative, elle est présentée à l’acheteur uniquement si une des données
personnelles obligatoires est manquante ou si un des formats attendus n’est pas respecté.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
11
2. Le choix du mode de livraison
Les modes de livraison sont proposés en fonction des informations transmises dans les
paramètres d’appel ou saisies sur la page précédente.
Si l’acheteur est reconnu (via un cookie), le dernier Point Retrait est proposé par défaut.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
12
3. Liste des Points Retrait à proximité
Suite au choix du mode « Dans un Point Retrait à proximité », l’acheteur peut visualiser les 10
points les plus proches de l’adresse transmise/saisie sous forme de liste ou sur une carte (sur
le format smarphone la carte est visible après clic sur l’onglet « Carte »).
Il a la possibilité de modifier son adresse pour rechercher d’autres Points Retrait.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
13
4. La validation du N° téléphone de portable
Cette étape est obligatoire dans le cas du mode de livraison en Point Retrait.
Le N° de téléphone portable, s’il a été transmis, est présenté à l’acheteur pour validation.
Sinon l’acheteur doit le saisir.
Remarque : Pour la France et la Belgique, il existe un contrôle sur le format. Pour les autres
destinations, seul l’indicatif du pays est contrôlé.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
14
5. La validation du récapitulatif du mode de livraison
Cette étape est facultative, elle est présentée à l’acheteur uniquement si vous avez activé
cette option dans votre Back-Office client (cf. Guide d’utilisation du Back-Office) ;
Une fois le mode de livraison validé, l’acheteur est redirigé vers l’URL retour « Validation » (cf.
Guide d’utilisation du Back-Office) de votre site web mobile ou de votre application, les
informations saisies ou sélectionnées sur la solution vous sont transmises.
III.3 Protocole
Le protocole utilisé est https (sa variante non sécurisée http est aussi accessible).
III.4 Cookie
La solution affiche le dernier Point Retrait via un cookie.
Cette fonctionnalité est disponible uniquement si le navigateur de l’acheteur autorise
l’utilisation de cookies tiers.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
15
III.5 Paramètres d’appel
Les paramètres doivent être transmis en méthode POST, à part l’URL de retour échec qui doit
être le seul paramètre transmis à la fois en méthode GET et la méthode POST.
Cela permet d’assurer la continuité de service en cas d’indisponibilité technique de la solution
(voir détail au paragraphe III.5 Erreur ! Source du renvoi introuvable.).
A noter : Il est conseillé de ne pas utiliser de caractères spéciaux dans les paramètres
d’appel.
Les paramètres d’appel doivent être transmis au format UTF8
Note pour les clients utilisant la solution Simplicité Page « Modes de
livraison » version IFrame:
Le mode de calcul de la signature est identique sur cette solution afin d’en
faciliter l’intégration.
A noter également que pour des raisons d’optimisation de l’affichage sur
mobile, les paramètres suivants ne seront pas affichés à l’acheteur :
interphone, instructions de livraison, codes portes.
III.5.1 Paramètres d’appel à transmettre en méthode GET
Champ Obligatoire Nom du paramètre
Modifiable par l’acheteur
Type Contrôle de la longueur du paramètre
Url de retour vers le site chargeur en cas d’échec
Oui trReturnUrlKo
N’apparait pas Jusqu’à 256 caractères alphanumériques
http:// ou https://
III.5.2 Paramètres d’appel à transmettre en méthode POST
Champ Obligatoire
Nom du paramètre
Modifiable dans le FO
Type Contrôle de la longueur du paramètre
Identifiant FO Oui pudoFOId N’apparait pas 14 caractères numériques
Informations sur le destinataire
Civilité du destinataire
Non ceCivility Oui MR/MME
Seuls ces formats
seront acceptés (insensible à la casse)
Nom du destinataire
Non ceName Oui Jusqu’à 34 caractères alphanumériques
Oui
Prénom du destinataire
Non ceFirstName Oui Jusqu’à 29 caractères
alphanumériques
Oui
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
16
Raison
sociale
Non ceCompanyName Oui Jusqu’à 38
caractères alphanumériques
Oui
Étage, couloir, escalier, n° appartement
Non ceAdress1 Oui Jusqu’à 38 caractères alphanumériques
Oui
Entrée,
bâtiment, immeuble, résidence
Non ceAdress2 Oui Jusqu’à 38
caractères alphanumériques
Oui
Numéro et libellé de la
voie
Non ceAdress3 Oui Jusqu’à 38 caractères
alphanumériques
Oui
Lieu dit ou autre mention spéciale
Non ceAdress4 Oui Jusqu’à 38 caractères alphanumériques
Oui
Code postal Non ceZipCode Oui En caractères alphanumériques selon cePays
Pour la France: 01XXX à 95XXX, 980XX et ADXXX
Pour la Belgique :1000 à 9999
Pour les autres destinations inter :
voir annexe V.3
Commune Non ceTown Oui Jusqu’à 32
caractères alphanumériques
Oui
Pays du destinataire
Non
(FR par
défaut)
cePays Oui si paramètre « option international »=1
2 caractères alphanumériques (code pays selon norme ISO3166)
Valeurs possibles : FR (par défaut) ou code ISO du pays éligible en annexe V.3
Interphone Non ceEntryPhone N’apparaît pas Jusqu’à 30 caractères alphanumériques
Oui
Autres instructions
de livraison
Non ceDeliveryInformation
N’apparaît pas Jusqu’à 70 caractères
alphanumériques
Oui
Courriel Non ceEmail Oui Jusqu’à 80 caractères alphanumériques
Format [email protected]
Oui
Téléphone portable
Non cePhoneNumber Oui Jusqu’à 15 caractères
Oui
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
17
numériques
Doit commencer par 06 ou 07 pour une livraison en France, et par +324 pour la Belgique
Pour les autres pays éligibles, voir annexe V.3
Code porte Non ceDoorCode1 N’apparaît pas Jusqu’à 8 caractères alphanumériques
Oui
Code porte 2 Non ceDoorCode2 N’apparaît pas Jusqu’à 8 caractères alphanumériques
Oui
Informations sur la
commande
Délai préparation
commande
Non dyPreparationTime
N’apparait pas Jusqu’à 2 caractères
numériques En jours ouvrables (du lundi au vendredi)
Frais d’expédition
Oui dyForwardingCharges
Non De 1 à 5 caractères alphanumériques
En € TTC Séparateurs « , » ou « . » Pour la France.
Non actif pour l’inter si les tarifs renseignés dans le BO
Frais
d’expédition Commerçant
Non dyForwardingCha
rgesCMT
Non Tarif réservé à la
livraison en Relais Commerçant en France
De 1 à 5 caractères alphanumériques
En € TTC
Séparateurs « , »
ou « . »
N° client web
Non trClientNumber N’apparait pas Jusqu’à 30 caractères alphanumériques
Oui
N° commande
Non trOrderNumber N’apparait pas Jusqu’à 30 caractères alphanumériques
Oui
N°
transaction
Oui orderId N’apparait pas De 5 à 16
caractères
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
18
alphanumériques
Ce numéro doit être unique pour chaque appel
Poids du
colis
Non dyWeight N’apparait pas Jusqu’à 5
caractères numériques
Exprimé en grammes
1ère commande
Non trFirstOrder N’apparait pas Booléen
1(Oui) : Les Points Retrait ne seront pas proposés
0(Non) : Les Points Retrait seront proposés
Paramètre plus chargeur
Non trParamPlus N’apparait pas Jusqu’à 256 caractères alphanumériques
Oui
International
Option International
Non
(0 par défaut)
trInter N’apparaît pas 1 caractère numérique
Fixe la zone
autorisée à la livraison :
0 pour France 1 pour International
Langue du destinataire
Non
(fr_FR par défaut)
ceLang N’apparaît pas De type ab_CD, où ab est la langue et
CD le pays de référence
Valeur acceptée : « fr_FR » (par défaut)
Voir langues et codes pays éligibles en annexe V.3
Contrôle de la demande
Numéro de version
Oui numVersion N’apparait pas 3 caractères alphanumériques
Transmettre la valeur « 4.0 »
Voir paragraphe
III.5.13 Numéro
de version
Signature Oui signature N’apparait pas 40 caractères
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
19
alphanumériques
Voir paragraphe
III.5.15 Signature
Url de retour vers le site
chargeur en cas de succès
Non trReturnUrlOk N’apparait pas Jusqu’à 256
caractères alphanumériques https:// ou http://
Url de retour vers le site chargeur en cas d’échec
Oui trReturnUrlKo
N’apparait pas Jusqu’à 256 caractères alphanumériques
http:// ou https://
III.5.3 Contrôle de la longueur du paramètre
Si la longueur des paramètres décrits ci-dessus est supérieure à la longueur autorisée définie
dans le tableau, la fin de la chaîne de caractères sera tronquée de façon à respecter cette
condition.
En fin de processus de choix du mode de livraison par l’acheteur, un code d’information sera
renvoyé vers l’url retour validation avec les paramètres concernés. Voir les codes
d’information au paragraphe IV.4.3 Codes d’information retournés au chargeur sur l’URL
retour Validation.
III.5.4 Votre Identifiant FO
Il s’agit de l’identifiant affiché dans la Page Configuration du Back Office « Modes de
livraison » version mobile.
Si l’identifiant FO est :
non renseigné ou
inconnu de l’application ou
correspondant à un compte client résilié par La Poste - Colissimo,
L’accès à la solution « Modes de livraison » version mobile ne sera pas autorisé. L’acheteur
sera redirigé vers l’url retour Echec. Un code erreur sera transmis, voir les codes erreur au
paragraphe III.4.2 Codes erreur retournés au chargeur sur l’URL retour Echec.
III.5.5 Informations sur le destinataire : Civilité du destinataire
En cas de non-respect du format, la valeur sera ignorée et la civilité sera non sélectionnée sur
la page de Saisie des informations personnelles.
En fin de processus de choix du mode de livraison par l’acheteur un code d’information sera
renvoyé vers l’url retour validation avec le paramètre concerné erroné. Voir les codes
d’information au paragraphe IV.4.3 Codes d’information retournés au chargeur sur l’URL
retour Validation.
III.5.6 Champ d’adresse du destinataire
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
20
Les informations concernant l’adresse du destinataire permettent de définir les modes de
livraisons possibles pour l’acheteur.
Des contrôles de format sont également effectués selon les dépendances entre les champs
« code postal », « pays de livraison » et « option international ».
Pays de livraison :
Si le paramètre « option international » vaut 0, le pays devra valoir « FR »
Si le paramètre « option international » vaut 1, le pays devra valoir un code pays éligible
Code postal :
Selon le pays de livraison, le code postal devra respecter les formats décrits en Annexe 3 :
Liste des pays éligibles à l’offre
En cas d’erreur, l’acheteur sera redirigé vers l’url retour Echec, avec le code erreur
correspondant aux données transmises.
III.5.7 Informations sur la commande : délai de préparation de la commande
En complément du paramétrage effectué dans le back Office (cf. Guide d’utilisation du Back-
Office), il est possible de passer un délai de préparation de commande dans les paramètres
d’appel. Le délai pourra donc être fixe ou variable suivant les commandes.
C’est le délai passé en paramètre lors de l’appel de la solution qui est prioritaire sur le délai
renseigné dans le Back Office.
Si le format numérique ou la taille du champ n’est pas respecté lors de l’appel, c’est le délai
enregistré dans le Back Office qui sera appliqué. Idem si le délai de préparation de commande
est transmis avec une valeur égale à 0.
En fin de processus de choix du mode de livraison par l’acheteur, un code d’information sera
renvoyé vers l’url retour validation avec le paramètre concerné erroné. Voir les codes
d’information au paragraphe IV.4.3
III.5.8 Frais d’expédition
Il existe deux paramètres d’appel pour gérer les frais d’expédition :
« Frais d’expédition »
Ce paramètre est obligatoire ; il s’agit des frais d’expédition que vous souhaitez appliquer par
défaut pour tous les modes de livraison en France.
« Frais d’expédition commerçants »
Ce paramètre est facultatif. Il permet d’appliquer un tarif différent pour la livraison en point
relais commerçants en France. S’il n’est pas transmis, c’est le tarif transmis dans le
paramètre « frais d’expédition » qui sera pris en compte.
Les frais d’expédition et les frais d’expédition commerçants doivent être compris entre 1 et 5
caractères alphanumériques avec comme séparateur un « . » ou une « , ».
Seul le paramètre « frais d’expédition » est obligatoire.
Pour la Belgique, le paramètre « frais d’expédition commerçant » ne sera plus pris en compte
dans l’appel dès qu’une valeur sera renseignée dans le Back Office.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
21
Le tableau suivant récapitule les valeurs prises en compte pour le calcul du total des frais
d’expédition selon le mode et le pays de livraison choisis.
Mode de livraison Total des frais d’expédition pour
une livraison en France Total des frais d’expédition pour une livraison à l’inter
A l’adresse suivante Frais d’expédition dans l’appel Frais d’expédition en back office
Point retrait La Poste Frais d’expédition dans l’appel ou en Back Office
Frais d’expédition en back office
Point retrait en consigne Pickup Station
Frais d’expédition dans l’appel Si non transmis => valeur des frais à
domicile
Non applicable
Point retrait Relais Frais d’expédition dans l’appel Si non transmis => valeur des frais à
domicile
Frais d’expédition en back office
Ces informations apparaissent en euros TTC sur la Page « Choix des Modes de livraison »
version mobile.
Le format du total des frais d’expédition retransmis par la Page « Choix des Modes de
livraison » est de 1 à 6 caractères alphanumériques avec comme séparateur un « . »
uniquement.
Les frais d’expédition retransmis par la Page « Choix des Modes de livraison » ne font pas foi
juridiquement et ne peuvent en aucun cas remplacer le calcul des frais d’expédition réel du
client par le chargeur.
Remarque :
Pour offrir les frais d’expédition (hors commerçants) à votre client, le paramètre « frais
d’expédition » doit être transmis avec une valeur nulle (« 0 »)
Pour offrir la livraison en relais commerçant français, vous devrez transmettre le
paramètre « frais d’expédition commerçants » avec une valeur nulle (« 0 »), quelle que
soit la valeur du paramètre « frais d’expédition ». Dans le cas où le paramètre ne serait
pas transmis, sa valeur prendrait par défaut la valeur du champ « frais d’expédition ».
III.5.9 Numéro de transaction
Chaque appel doit être accompagné d’un numéro de transaction qui lui est propre.
Votre site web mobile ou votre application doit donc générer un nouveau numéro de
transaction à chaque appel.
Vous avez toute liberté de générer ce numéro de façon incrémentale ou autre (par exemple à
partir de la date et l’heure courante en millisecondes avec les précautions d’usage
garantissant l’unicité).
Le numéro de transaction doit être :
renseigné
compris entre 5 et 16 caractères alphanumériques
Si un des critères n’est pas respecté, l’accès à la solution ne sera pas autorisé. L’acheteur sera
redirigé vers votre url retour Echec. Un code erreur sera transmis, voir les codes erreur au
paragraphe III.4.2 Codes erreur retournés au chargeur sur l’URL retour Echec.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
22
III.5.10 Poids du colis
Cette information est utilisée afin de filtrer les Points Retrait à proximité dont le poids
maximum autorisé est inférieur ou égal au poids du colis.
Si le format numérique ou la taille du champ n’est pas respecté, cette valeur sera ignorée, les
Points Retrait à proximité ne seront donc pas filtrés sur ce critère.
Idem si le poids est transmis avec une valeur égale à 0.
En fin de processus de choix du mode de livraison par l’acheteur un code d’information sera
renvoyé vers l’url retour validation avec le paramètre concerné erroné. Voir les codes
d’information au paragraphe IV.4.3. Le poids doit être transmis en gramme (pas de
séparateur).
III.5.11 Paramètre Première commande
Vous avez la possibilité de filtrer le mode de livraison en Point Retrait à proximité dans le cas
d’une première commande.
Une valeur « 0 » indique qu’il ne s’agit pas d’une première commande, dans ce cas le mode de
livraison en Point Retrait est proposé.
Une valeur « 1 » indique qu’il s’agit d’une première commande, dans ce cas le mode de
livraison en Point Retrait n’est pas proposé.
Toute autre valeur que « 1 » est considérée comme équivalente à 0, dans ce cas le mode de
livraison en Point Retrait est proposé.
III.5.12 Paramètre plus chargeur
Ce paramètre vous permet de transmettre à la solution des données spécifiques que La Poste
- Colissimo n’interprétera pas.
A la fin du processus de choix du mode de livraison par l’acheteur, ce paramètre sera
retransmis à votre Url de retour « Validation ».
En cas d’erreur, le paramètre est également retransmis à votre Url de retour « Echec ».
Afin que la valeur puisse correctement vous être renvoyée veiller à ce que le format soit
respecté (256 caractères alphanumériques maximum).
III.5.13 Numéro de version
Le paramètre numéro de version permet à La Poste - Colissimo d’identifier quelle version de la
solution vous utilisez.
Le numéro de version doit :
Etre obligatoirement transmis et prendre la valeur 4.0
Etre associé aux modes de calcul de signature décrits au paragraphe II.5.8 Calcul de la
signature en entrée.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
23
Si ce n’est pas le cas, l’accès à la solution ne sera pas autorisé. L’acheteur sera redirigé vers
votre url retour Echec. Un code erreur sera transmis, la signature calculée sera incorrecte.
Voir les codes erreur au paragraphe III.4.2 Codes erreur retournés au chargeur sur l’URL
retour Echec.
III.5.14 International
III.5.14.1 Option International
Ce paramètre vous permet de préciser si vous autorisez la livraison à l’international ou non.
Valeurs possibles :
0 : l’international n’est pas autorisé. Votre client ne pourra se faire livrer qu’en France
1 : seul l’international est autorisé. Votre client ne pourra se faire livrer que dans le
pays spécifié
Par défaut, si le paramètre « option International » n’est pas transmis ou s’il est transmis avec
une valeur autre que celles citées au-dessus, il prendra la valeur « 0 » (livraison en France
uniquement).
III.5.14.2 Pays de livraison
Le paramètre « pays de livraison » vient compléter le paramètre « option International » afin
de présélectionner le champ pays dans les coordonnées du client.
Selon la valeur du champ « option international », le champ « Pays » pourra ou non être
modifié par le client.
Le paramètre « Pays de livraison » peut valoir « FR » pour France ou le code ISO du pays
éligible (voir annexe V.3).
S’il n’est pas transmis ou s’il est transmis avec une valeur autre que celles citées au-dessus, il
prendra la valeur « FR ».
III.5.14.3 Langue
Les langues disponibles sont listées en Annexe 3 : Liste des pays éligibles à l’offre . Colissimo
se réserve le droit de modifier la liste des langues disponibles selon l’évolution de l’offre
Colissimo.
La langue à utiliser pour l’interface de saisie et les coordonnées des points de retraits pourra
être choisie par le chargeur, via le paramètre « Langue du destinataire ».
III.5.15 Signature
La signature permet de garantir que les données que vous transmettez à la solution ne
subiront pas de modifications entre l’envoi et la réception.
La signature, basée sur une clé SHA qui vous est propre (cf. Guide d’utilisation du Back-
Office), permet un contrôle de l’accès à la solution.
La signature doit être :
renseignée
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
24
correspondre à celle calculée par La Poste - Colissimo (à noter que celle-ci doit être
calculée en minuscule)
L’encodage doit être fait en UTF8
Si ce n’est pas le cas, l’accès à la solution ne sera pas autorisé. L’acheteur sera redirigé vers
votre url retour Echec. Un code erreur sera transmis, voir les codes erreur au paragraphe
III.4.2 Codes erreur retournés au chargeur sur l’URL retour Echec.
III.5.16 Calcul de la signature en entrée
Il s’agit d’appliquer un algorithme SHA sur une concaténation de champs.
L’algorithme SHA-1 (Secure Hash Algorithm) est une fonction de hachage cryptographique. Il
produit une signature de 160 bits (40 caractères).
Son implémentation dépend de votre environnement technique. Des exemples
d’implémentations Java, Javascript, Android et iOS sont fournis en Annexe 2 Exemple de
calcul de signature SHA.
Champ pris en compte pour la signature Nom du champ Obligatoire
Identifiant FO pudoFOId Oui
Nom du destinataire ceName Non
Délai de préparation de commande dyPreparationTime Non
Frais d’expédition dyForwardingCharges Oui
Frais d’expédition commerçants dyForwardingChargesCMT Non
N° client web trClientNumber Non
N° commande trOrderNumber Non
N° transaction orderId Oui
N° de version numVersion Oui
Civilité du destinataire ceCivility Non
Prénom du destinataire ceFirstName Non
Raison sociale ceCompanyName Non
Etage, couloir, escalier, n° appartement ceAdress1 Non
Entrée, bâtiment, immeuble, résidence ceAdress2 Non
Numéro et libellé de la voie ceAdress3 Non
Lieu dit ou autre mention spéciale ceAdress4 Non
Code postal ceZipCode Non
Commune ceTown Non
Interphone ceEntryPhone Non
Autres instructions de livraison ceDeliveryInformation Non
Courriel ceEmail Non
Téléphone portable cePhoneNumber Non
Code porte ceDoorCode1 Non
Code porte 2 ceDoorCode2 Non
Poids du colis dyWeight Non
Paramètre première commande trFirstOrder Non
Paramètre plus chargeur trParamPlus Non
URL de retour échec trReturnUrlKo Oui
URL de retour validation trReturnUrlOk Non
Pays du destinataire cePays Non
Option International trInter Non
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
25
Langue du destinataire ceLang Non
L’ordre des champs doit impérativement être respecté. La clé SHA qui vous a été
fournie par La Poste - Colissimo doit être également concaténée à la fin de la chaîne.
Chaîne_à_convertir= pudoFOId+ceName+dyPreparationTime+dyForwardingCharges+
dyForwardingChargesCMT+trClientNumber+trOrderNumber+orderId+numVersion+ceCivility+
ceFirstName+ceCompanyName+ceAdress1+ceAdress2+ceAdress3+ceAdress4+ceZipCode+ce
Town+ceEntryPhone+ceDeliveryInformation+ceEmail+cePhoneNumber+ceDoorCode1+ceDoor
Code2+dyWeight+trFirstOrder+trParamPlus+trReturnUrlKo+trReturnUrlOk+cePays+trInter+c
eLang+cléSHA
Signature=SHA1(Chaîne_à_convertir)
Certains des champs ci-dessus ne sont pas obligatoires. S’ils ne sont pas transmis
par votre site web mobile ou votre application, ils ne doivent pas être pris en compte
dans le calcul de la signature.
Exemple de concaténation avec les champs obligatoires uniquement:
Chaîne_à_convertir=
pudoFOId+dyForwardingCharges+orderId+numVersion+trReturnUrlKo+cléSHA
Signature=SHA1(Chaîne_à_convertir)
III.5.17 URLs de retour : URL de retour « Validation »
Il est possible de transmettre l’URL de retour « Validation » dans les paramètres d’appel de la
solution.
Il s’agit d’un paramètre facultatif, cette possibilité est offerte pour les plateformes e-
commerce disposant de plusieurs sites.
C’est l’URL passée en paramètre lors de l’appel qui est prioritaire à celle renseignée dans le
Back-Office (cf. Guide d’utilisation du Back-Office).
Cette URL doit respecter le format de 256 caractères alphanumériques maximum et
commencer par https:// ou http://.
Si ce n’est pas le cas, l’accès à la solution ne sera pas autorisé. L’acheteur sera redirigé vers
votre url retour Echec. Un code erreur sera transmis, voir les codes erreur au paragraphe
III.4.2 Codes erreur retournés au chargeur sur l’URL retour Echec.
III.5.18 URL de retour « Echec »
Afin de ne pas perdre la commande en cours en cas d’indisponibilité du service, La Poste
Colissimo demande au chargeur de transmettre l’URL de retour « Echec » dans les paramètres
d’appel de la solution en méthode GET en plus de sa transmission en méthode POST.
Cette URL doit :
être obligatoirement renseignée
respecter le format de 256 caractères alphanumériques maximum et commencer par
https:// ou http://
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
26
Si ce n’est pas le cas, l’accès à la solution ne sera pas autorisé. L’acheteur sera redirigé vers
l’url retour Echec saisie dans le Back Office. Un code erreur sera transmis, voir les codes
erreur au paragraphe III.4.2 Codes erreur retournés au chargeur sur l’URL retour Echec.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
27
IV. INTEGRATION DE LA SOLUTION
IV.1 Préambule
Les URLs de retour doivent être préalablement définies et validées dans le Back Office (Cf
Guide d’utilisation du Back-Office).
Si ce n’est pas le cas, l’accès à la solution ne sera pas autorisé. L’acheteur sera redirigé vers
l’url retour Echec passée en paramètre. Un code erreur sera transmis, voir les codes erreur au
paragraphe III.4.2 Codes erreur retournés au chargeur sur l’URL retour Echec.
Pour vos tests :
Le paramètre pudoFOId indiqué dans les exemples qui suivent doit être remplacé par
l’Identifiant FO présent dans votre Back Office.
La signature indiquée dans les exemples qui suivent doit être remplacée et calculée avec la clé
SHA présente dans votre Back Office.
IV.2 Appel depuis un site web mobile
Après avoir remplacé les paramètres « hidden » par des paramètres valides, il suffit d’ouvrir
cette page html avec un navigateur Internet pour être automatiquement redirigé vers la
solution avec transmission de ces paramètres.
IV.2.1 Exemple de transmission avec les paramètres obligatoires
Le code html statique ci-dessous permet, lorsque les champs spécifiés ont été modifiés et
renseignés, l’appel de la solution avec les paramètres obligatoires exclusivement.
<html>
<head> <title>Appel de So Colissimo Mobile</title> <script type="text/javascript" src="webtoolkit.js"></script> </head> <body> <br/><br/><br/><br/><br/><br/> En attente du site So Colissimo Mobile <form name="formpudocall" action="http://ws-mobile.colissimo.fr? trReturnUrlKo=http://www.echec.com" method="post"> <input type="hidden" name="pudoFOId" value="05463720233029"> <input type="hidden" name="dyForwardingCharges" value="2.5"> <input type="hidden" name="orderId" value="2010217114011118"> <input type="hidden" name=" trReturnUrlKo" value="http://www.echec.com">
<input type="hidden" name="numVersion" value="4.0"> <input type="hidden" name="signature" value="9671286d906bd6f37427a72f2b5c3befea279198">
</form> <script>document.formpudocall.submit();</script> </body> </html>
Comme décrit au paragraphe II.5.8 Calcul de la signature en entrée, la signature est calculée
à partir de la concaténation des paramètres suivants :
pudoFOId+dyForwardingCharges+orderId+numVersion+trReturnUrlKo+cléSHA
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
28
(dans cet exemple la clé SHA utilisée est rungis)
C’est à dire dans l’exemple ci-dessus :
054637202330292.520102171140111184.0http://www.echec.comrungis
Rappel : la signature doit être en minuscule au format UTF8
IV.2.2 Exemple de transmission avec l’ensemble des paramètres
Le code html en exemple ci-dessous permet, lorsque les champs spécifiés ont été modifiés et
renseignés, l’appel de la solution.
Pour ne pas passer un paramètre, il faut supprimer entièrement la ligne (ne pas
transmettre ce paramètre avec une valeur vide).
Exemple : en cas de non transmission du numéro de client, supprimer intégralement la ligne
<input type="hidden" name="trClientNumber" value="CL45678">
<html>
<head> <title>Appel de SO Livraison</title> <script type="text/javascript" src="webtoolkit.js"></script> </head> <body> <br/><br/><br/><br/><br/><br/> En attente du site SO Livraison <form name="formpudocall" action="http://ws-mobile.colissimo.fr trReturnUrlKo=http://www.echec.com" method="post">
<input type="hidden" name="pudoFOId" value="05463720233029"> <input type="hidden" name="ceName" value="Dubreuil">
<input type="hidden" name="dyPreparationTime" value="1"> <input type="hidden" name="dyForwardingCharges" value="2.5"> <input type="hidden" name="dyForwardingChargesCMT" value="2"> <input type="hidden" name="trClientNumber" value="CL45678">
<input type="hidden" name="trOrderNumber" value="CMD78954"> <input type="hidden" name="orderId" value="2010217114011118"> <input type="hidden" name="numVersion" value="4.0"> <input type="hidden" name="ceCivility" value="MR">
<input type="hidden" name="ceFirstName" value="Pierre"> <input type="hidden" name="ceCompanyName" value="AGFR International"> <input type="hidden" name="ceAdress1" value="Escalier B"> <input type="hidden" name="ceAdress2" value="Porte C"> <input type="hidden" name="ceAdress3" value="16, boulevard de reuilly"> <input type="hidden" name="ceAdress4" value="12 ème arrondissement"> <input type="hidden" name="ceZipCode" value="75012"> <input type="hidden" name="ceTown" value="Paris"> <input type="hidden" name="ceEntryPhone" value="256A">
<input type="hidden" name="ceDeliveryInformation" value="Chien méchant"> <input type="hidden" name="ceEmail" value="[email protected]">
<input type="hidden" name="cePhoneNumber" value="0124548278"> <input type="hidden" name="ceDoorCode1" value="123456">
<input type="hidden" name="ceDoorCode2" value="ABCDEF"> <input type="hidden" name="dyWeight" value="150"> <input type="hidden" name="trFirstOrder" value="1"> <input type="hidden" name="trParamPlus" value="ABC12EF"> <input type="hidden" name=" trReturnUrlOk " value=http://www.succes.com> <input type="hidden" name=" trReturnUrlKo" value="http://www.echec.com">
<input type="hidden" name="trInter" value="1"> <input type="hidden" name="cePays" value="FR"> <input type="hidden" name="ceLang" value="fr_FR"> <input type="hidden" name="signature" value=" 1164bebf67e4db655bc5d8850f7ca7803696d5bf">
</form>
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
29
<script>document.formpudocall.submit();</script> </body>
</html>
Comme décrit au paragraphe II.5.8 Calcul de la signature en entrée, la signature est calculée
à partir de la concaténation des paramètres suivants :
pudoFOId+ceName+dyPreparationTime+dyForwardingCharges+
dyForwardingChargesCMT+trClientNumber+trOrderNumber+orderId+numVersion+ceCivility+
ceFirstName+ceCompanyName+ceAdress1+ceAdress2+ceAdress3+ceAdress4+ceZipCode+ce
Town+ceEntryPhone+ceDeliveryInformation+ceEmail
+cePhoneNumber+ceDoorCode1+ceDoorCode2+dyWeight+trFirstOrder+trParamPlus+trRetur
nUrlKo+trReturnUrlOk+cePays+trInter+ceLang+cléSHA
Dans cet exemple la clé SHA utilisée est rungis.
C’est à dire dans l’exemple ci-dessus :
05463720233029Dubreuil12.52CL45678CMD7895420102171140111184.0MRPierreAGFR
InternationalEscalier BPorte C16, boulevard de reuilly12 ème
arrondissement75012Paris256AChien
mé[email protected]://www.echec.c
omhttp://www.succes.comrungis
Rappel : la signature doit être en minuscule au format UTF8.
IV.3 Appel depuis une application native
Afin d’utiliser la solution dans une application native, le composant webview doit être
configuré.
Il est nécessaire de passer en paramètre dans le Header de la page d’appel, les variables
Hybride et WithHeader.
Hybride = 1 afin d’indiquer que l’on se trouve dans une application native
Withheader avec 0 ou 1 afin d’indiquer si l’on souhaite afficher ou non le bandeau
orange
- 0 = non affichage du bandeau, 1 = affichage du bandeau
- Le paramètre n’est valable que si Hybride = 1
- Le paramètre est facultatif
- S’il n’est pas renseigné, la solution affiche le bandeau orange
Dans une application Android il faut utiliser :
public void loadUrl (String url, Map<String, String> additionalHttpHeaders)
Dans une application iOS, il faut utiliser :
[requestSoColissimo setValue:@"1" forHTTPHeaderField:@"Hybride"];
[requestSoColissimo setValue:@"1" forHTTPHeaderField:@"WithHeader"];
Exemple d’intégration avec un affichage sans le bandeau (écran avec le bandeau en page 12)
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
30
IV.3.1 Intégration dans une application Android
import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView wv = new WebView(this); setContentView(wv); String url = " http://ws-mobile.colissimo.fr?trReturnUrlKo=http://retourko.htm"; String postData = "pudoFOId=05463720233865&"; postData += "ceName=Dubreuil&"; postData += "dyPreparationTime=1&"; postData += "dyForwardingCharges=2,50&"; postData += "dyForwardingChargesCMT=2&"; postData += "trClientNumber="CL45678&"; postData += "trOrderNumber="CMD78954&"; postData += "orderId=2010217114011118&"; postData += "numVersion=4.0&"; postData += "ceCivility=MR&"; postData += "ceFirstName=David&"; postData += "ceCompanyName = AGFR International &"; postData += "ceAdress1=Escalier B &"; postData += "ceAdress2=Porte C &"; postData += "ceAdress3=15 rue rivoli&"; postData += "ceAdress4=1er arrondissement&"; postData += "ceZipCode=75001&"; postData += "ceTown=Paris&"; postData += "ceEntryPhone =256A &"; postData += "ceDeliveryInformation =Laisser au gardien&"; postData += "[email protected]&"; postData += "cePhoneNumber=0600000009&"; postData += "ceDoorCode1=123456&"; postData += "ceDoorCode2= ABCDEF&"; postData += "dyWeight=2000&"; postData += "trReturnUrlKo=http://retourko.htm&"; postData += "trReturnUrlOk=http://retourok.htm&"; postData += "trInter=1&"; postData += "cePays=FR&"; postData += "ceLang=fr_FR&"; postData += "key=603092782859&"; postData += "signature=d774ab6dce55ab0c689cc28c77906b7bc5962836"; wv.getSettings().setJavaScriptEnabled(true); wv.setWebViewClient(new MyWebViewClient()); wv.postUrl(url, EncodingUtils.getBytes(postData, "base64")); wv.loadUrl(url,Hybride,1);
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
31
} private class MyWebViewClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.v("", "onPageStarted : " + url); super.onPageStarted(view, url, favicon); } } }
IV.3.2 Intégration dans une application iOS
Une classe Request à été créée pour faciliter la création de la requête pour le tunnel. Elle
permet de créer la chaine de caractères comprenant la signature à envoyer en POST. Fichier SCTRequest
Header :
@interface SCTRequest : NSObject @property (nonatomic, retain) NSMutableString *request; @property (nonatomic, retain) NSMutableString *sha1; /* * Create a string with all necessary post * and concat new variable to the string at each call */ - (void)concatkey:(NSString *)key andValue:(NSString *)value; /* * Compute the sha1 from all the post added to the request * And and the post variable "signature" zith the sha1 * This methode must be call when all post are added to the request */ - (void)addSha1ToString;
Implementation :
@implementation SCTRequest @synthesize request, sha1; - (void)concatkey:(NSString *)key andValue:(NSString *)value { if ((request == nil) || ([request isEqualToString:@""])) { request = [NSMutableString stringWithFormat:@"%@=%@", key, value]; sha1 = [NSMutableString stringWithFormat:@"%@",value]; } else { [request appendFormat:@"&%@=%@", key, value]; [sha1 appendFormat:@"%@", value]; } } -(NSString*) sha1:(NSString*)input {
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
32
const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:input.length]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; bool sha1fct = CC_SHA1(data.bytes, data.length, digest); /* * handle sha1 function fail here if necessary */ NSAssert(sha1fct, @"Sha1 function fail with : %@", input); NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) [output appendFormat:@"%02x", digest[i]]; NSLog(@"sha1 : %@", output); return output; } -(void)addSha1ToString { if ((sha1 == nil) || (request == nil)) return; [self concatkey:@"signature" andValue:[self sha1:sha1]]; }
Fichier SCTCallerViewController
Implémentation :
@interface SCTCallerViewController () @end @implementation SCTCallerViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); }
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
33
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"callTunnel"]) { NSMutableURLRequest *requestSoColissimo; /* * Add all post to the string used to post * You should use a model with a dictonnary Key/Value * * The order of the insert of all the post is important * because the sha1 is build from all the concatenate value of the post * Check the So Colissimo specifications for more informations about the * sha1 creation */ SCTRequest *dataRequest = [[SCTRequest alloc] init]; [dataRequest concatkey:@"pudoFOId" andValue:@"05464540474629"]; [dataRequest concatkey:@"ceName" andValue:@"Dubreuil"]; [dataRequest concatkey:@"dyPreparationTime" andValue:@"1"]; [dataRequest concatkey:@"dyForwardingCharges" andValue:@"2,50"]; [dataRequest concatkey:@"dyForwardingChargesCMT" andValue:@"2"]; [dataRequest concatkey:@"orderId" andValue:@"test9999"]; [dataRequest concatkey:@"numVersion" andValue:@"4.0"]; [dataRequest concatkey:@"ceCivility" andValue:@"MR"]; [dataRequest concatkey:@"ceFirstName" andValue:@"David"]; [dataRequest concatkey:@"ceAdress3" andValue:@"15ruerivoli"]; [dataRequest concatkey:@"ceZipCode" andValue:@"75001"]; [dataRequest concatkey:@"ceTown" andValue:@"Paris"]; [dataRequest concatkey:@"ceEmail" andValue:@"[email protected]"]; [dataRequest concatkey:@"cePhoneNumber" andValue:@"0600000009"]; [dataRequest concatkey:@"dyWeight" andValue:@"2000"]; [dataRequest concatkey:@"trReturnUrlKo" andValue:@"http://retourko.htm"]; [dataRequest concatkey:@"trInter" andValue:@"1"]; [dataRequest concatkey:@"cePays" andValue:@"FR"]; [dataRequest concatkey:@"ceLang" andValue:@"fr_FR"]; /* * the trReturnUrlOk is set to http://retourok.htm to check when the tunnel is over * it is an efficient and simple way to check it. */ [dataRequest concatkey:@"trReturnUrlOk" andValue:@"http://retourok.htm"]; [dataRequest concatkey:@"key" andValue:@"630600854936"]; /* * Compute and add the sha1 */ [dataRequest addSha1ToString]; /* * Setting the request */ requestSoColissimo = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://ws-mobile.colissimo.fr?trReturnUrlKo=http://retourko.htm"]]; NSData *postData = [dataRequest.request dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; [requestSoColissimo setHTTPMethod:@"POST"]; [requestSoColissimo setValue:postLength forHTTPHeaderField:@"Content-Length"]; [requestSoColissimo setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [requestSoColissimo setValue:@"1" forHTTPHeaderField:@"Hybride"]; [requestSoColissimo setValue:@"1" forHTTPHeaderField:@"WithHeader"]; [requestSoColissimo setHTTPBody:postData];
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
34
/* * Send the request to the tunnel controller */ SCTTunnelViewController *cvc = [segue destinationViewController]; cvc.requestSoColissimo = requestSoColissimo; } } @end
IV.3.3 Retour vers l’application du e-marchand
La solution n’inclut pas de bouton retour pour revenir vers la page du e-marchand. Le retour
s’effectuera via les boutons du navigateur, lorsque la solution est intégré en webmobile.
Dans le cas d’une intégration dans une application iOS, il est conseillé de développer une
solution permettant de revenir vers l’application du e-marchand (les téléphones utilisant l’OS
Android prévoit la plupart du temps un bouton retour)
Voici un exemple à partir d’une application iOS :
Ce code se trouve dans la vue du tunnel et est appelé quand un bouton retour est appuyé
- (IBAction)backToCall:(id)sender { [self.navigationController popToRootViewControllerAnimated:YES]; }
IV.4 Gestion des erreurs
IV.4.1 Messages d’erreur affichés par la solution
Ces messages sont affichés sur la page de saisie des informations personnelles (à l’arrivée sur
la page ou suite à la modification des informations par l’acheteur), et également dans le bloc
de recherche d’un nouveau Point Retrait à proximité pour les champs adresse, code postal et
commune.
Libellé Vérification/Action Type
Veuillez renseigner votre $1, $2, $3, $4,
$5, $6, $7
Affiché si les champs suivants ne sont
pas renseignés :
$1 pour Civilité
$2 pour Nom
$3 pour prénom
$4 pour adresse
$5 code postal
$6 commune
$7 courriel
Bloquant
Vous avez saisi un caractère non autorisé :
&;~#{([|\^)]=}$¤€£%µ*§!°²¹
Affiché si l’un des champs du formulaire
contient un caractère non autorisé (sauf
code postal, courriel et téléphone qui ont
un contrôle particulier)
Le & est autorisé dans le champ Raison
Sociale.
Bloquant
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
35
Le format du courriel n'est pas valide.
Le format attendu est [email protected] avec z
contenant au moins 2 caractères Bloquant
Le format du code postal n'est pas valide.
Pour la France, le format attendu est
01XXX à 95XXX, ADXXX et 980XX avec X
égal un numérique.
Belgique : 1000 à 9999
Autres destinations inter : voir annexe
Bloquant
Le format du numéro de téléphone portable
n'est pas valide
Affiché si le numéro de téléphone
portable n’est pas sur 10 caractères
numériques commençant par 06 ou 07 et
si les 8 derniers chiffres sont identiques ou correspondent à (12345678)
France : 06XXXXXXXX ou
07XXXXXXXX
Belgique : +324XXXXXXXX
Autres pays : seul l’indicatif est
contrôlé
Bloquant
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
36
IV.4.2 Codes erreur retournés au chargeur sur l’URL retour Echec
Code
erreur
Libellé Vérification/Action Type
001 Identifiant FO manquant L’identifiant FO n’est pas transmis dans les paramètres d’appel.
Bloquant
002 Identifiant FO incorrect L’identifiant FO transmis dans les paramètres d’appel est inconnu de l’application, de taille non conforme ou n’a pu être identifié par la solution (erreur technique : Back Office indisponible)
Bloquant
003 Client non autorisé L’identifiant FO transmis dans les paramètres
d’appel correspond à un compte résilié par La Poste - Colissimo ou n’a pu être identifié par la solution (erreur technique : authentification indisponible)
Bloquant
004 Champ obligatoire manquant Il manque un paramètre obligatoire dans les
paramètres d’appel :
Frais d’expédition N° transaction URL retour Echec
Bloquant
006 Signature manquante La signature n’est pas transmise dans les
paramètres d’appel.
Bloquant
007 Signature ou numéro de version invalide
La signature transmise dans les paramètres d’appel n’est pas valide ou le numéro de version transmis dans les paramètres d’appel n’est pas valide.
Bloquant
008 Code postal invalide Le code postal transmis dans les paramètres d’appel n’est pas valide.
Bloquant
009 Format url retour Validation
incorrect
L’url transmise dans les paramètres d’appel n’est
pas valide.
Bloquant
010 Format url retour Echec incorrect
L’url retour Echec transmise dans les paramètres d’appel n’est pas valide.
Bloquant
011 Numéro de transaction non
valide
Le numéro de transaction transmis dans les
paramètres d’appel n’est pas valide.
Bloquant
012 Format des frais d’expédition incorrect
Les frais d’expédition transmis dans les paramètres d’appel ne sont pas valides.
Bloquant
015 Serveur applicatif non disponible Le serveur applicatif La Poste - Colissimo est indisponible.
Bloquant
020 Option International et Pays incompatibles
La valeur du paramètre « option International » ne permet pas d’autoriser la valeur du paramètre « Pays de livraison »
Bloquant
IV.4.3 Codes d’information retournés au chargeur sur l’URL retour Validation
Code information
Libellé Vérification/Action Type
501 Champ courriel trop long, champ tronqué
La valeur concernée est également retournée. Non bloquant
502 Champ portable trop long,
champ tronqué
La valeur concernée est également retournée. Non
bloquant 503 Champ Nom trop long, champ
tronqué
La valeur concernée est également retournée. Non
bloquant 504 Champ Prénom trop long,
champ tronqué La valeur concernée est également retournée. Non
bloquant 505 Champ Raison sociale trop
long, champ tronqué
La valeur concernée est également retournée. Non
bloquant 506 Champ Etage … trop long,
champ tronqué La valeur concernée est également retournée. Non
bloquant
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
37
507 Champ Entrée … trop long,
champ tronqué
La valeur concernée est également retournée. Non
bloquant 508 Champ Lieu dit trop long,
champ tronqué
La valeur concernée est également retournée. Non
bloquant 509 Champ Numéro et libellé de
voie trop long, champ tronqué La valeur concernée est également retournée. Non
bloquant 510 Champ Commune trop long,
champ tronqué La valeur concernée est également retournée. Non
bloquant 511 Champ interphone trop long,
champ tronqué La valeur concernée est également retournée. Non
bloquant 512 Champ informations
complémentaires trop long, champ tronqué
La valeur concernée est également retournée. Non bloquant
513 Champ Code porte trop long,
champ tronqué
La valeur concernée est également retournée. Non
bloquant 514 Champ Code porte 2 trop long,
champ tronqué La valeur concernée est également retournée. Non
bloquant 515 Champ Numéro de client trop
long, champ tronqué
La valeur concernée est également retournée. Non
bloquant 516 Champ Numéro de commande
trop long, champ tronqué La valeur concernée est également retournée. Non
bloquant 517 Champ ParamPlus trop long,
champ tronqué La valeur concernée est également retournée. Non
bloquant 131 Civilité invalide, champ ignoré Le format de la civilité est incorrect Non
bloquant 132 Le champ délai de préparation
de commande n’est pas valide, champ ignoré
Le Délai préparation commande n’est pas un numérique valide, est trop long ou est égal à 0.
Non bloquant
133 Le champ poids n’est pas
valide, champ ignoré Le Poids de la commande n’est pas un
numérique valide, est trop long ou est égal à 0.
Non
bloquant
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
38
IV.5 Indisponibilité et continuité du processus de commande
IV.5.1 Serveur applicatif hors service
Dans le cas où le Serveur applicatif de La Poste - Colissimo est hors service, l’acheteur est
redirigé vers l’url retour Echec transmis dans les paramètres d’appel.
Le code erreur bloquant 015 est transmis.
Si l’url de retour Echec n’est pas transmise dans les paramètres d’appel alors une page
d’erreur est affichée à l’acheteur. Voir paragraphe IV.5.3 Page d’erreur interne.
IV.5.2 Continuité du processus de commande
En sus des mécanismes de supervision des infrastructures applicatives et matérielles qui ne
garantissent pas par eux-mêmes la disponibilité de l’ensemble de la chaîne de traitement, La
Poste Colissimo recommande aux chargeurs, la mise en œuvre d’un contrôle préalable à
l’appel de la solution « Modes de livraison » version mobile.
Pour ce faire, La Poste - Colissimo met à disposition des chargeurs, une URL de supervision
permettant de vérifier si la solution est disponible : http://ws-
mobile.colissimo.fr/supervision
Cette page affiche [OK] si le serveur applicatif est opérationnel. Toute réponse différente de
[OK] est à considérer comme [KO].
Si la page n’affiche pas OK, le chargeur doit mettre en place un processus de
contournement afin de ne pas appeler la solution « Modes de livraison » version
mobile mais d’afficher sur la page e-marchand la livraison à domicile en Colissimo.
La vérification de disponibilité du service consiste en l’appel de la page de supervision par le
chargeur, suivi de la recherche de la chaîne de caractère [OK] dans cette page.
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
39
IV.5.3 Page d’erreur interne
En cas d’erreur technique ne permettant ni d’afficher la solution ni d’envoyer des informations
au chargeur, la page statique suivante sera affichée à l’acheteur
Simplicité – Page « Choix des Modes de livraison » version mobile Novembre 2017
40
IV.6 Paramètres de Retour
IV.6.1 Retours sur l’URL retour Validation
Une fois le choix du mode de livraison réalisé par l’acheteur :
dans le cas d’une intégration en web mobile, les paramètres sont transmis en POST. L’URL retour échec est transmise en
GET et en POST afin d’assurer la continuité de service en cas d’indisponibilité technique de La Poste - Colissimo.
dans le cas d’une intégration dans une application native, l’ensemble des paramètres sont transmis en GET
IV.6.2 Retour pour les modes de livraison à Domicile
Paramètre Obligatoire Nom du paramètre Type Commentaire
Identifiant FO Oui pudoFOID 14 numériques Identique au paramètre d’appel
Nom du destinataire Oui ceName Jusqu’à 34 alphanumériques
Tel qu’affiché sur la solution
Délai préparation commande Oui dyPreparationTime Jusqu’à 2 alphanumériques Tel que présent dans les paramètres d’appel
Total des Frais d’expédition Oui dyForwardingCharges Jusqu’à 6 alphanumériques avec comme séparateur « . »
Correspond au frais d’expédition passés en entrée
N° client web trClientNumber Jusqu’à 30 alphanumériques
Tel que présent dans les paramètres d’appel
N° commande trOrderNumber Jusqu’à 30 alphanumériques
Tel que présent dans les paramètres d’appel
N° transaction Oui orderId De 5 à 16 alphanumériques
Tel que présent dans les paramètres d’appel
Civilité du destinataire Oui ceCivility MR/MME/MLE Tel qu’affiché sur la solution
Prénom du destinataire Oui ceFirstName Jusqu’à 29 alphanumériques
Tel qu’affiché sur la solution
Raison sociale du destinataire ceCompanyName Jusqu’à 38 alphanumériques
Tel qu’affiché sur la solution
Étage, couloir, escalier, n° appartement du destinataire
ceAdress1 Jusqu’à 38 alphanumériques
Tel qu’affiché sur la solution
Entrée, bâtiment, immeuble, résidence du destinataire
ceAdress2 Jusqu’à 38 alphanumériques
Tel qu’affiché sur la solution
Numéro et libellé de la voie du destinataire
Oui ceadress3 Jusqu’à 38 alphanumériques
Tel qu’affiché sur la solution
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
41
Lieu dit ou autre mention spéciale du destinataire
ceadress4 Jusqu’à 38 alphanumériques
Tel qu’affiché sur la solution
Code postal du destinataire Oui ceZipCode 5 alphanumériques Tel qu’affiché sur la solution
Commune du destinataire Oui ceTown Jusqu’à 32
alphanumériques
Tel qu’affiché sur la solution
Mode de livraison sélectionné Oui deliveryMode 3 alphanumériques DOM pour domicile
Autres instructions de livraison ceDeliveryInformation Jusqu’à 70
alphanumériques
Tel que présent dans les
paramètres d’appel
Courriel du destinataire Oui ceEmail Jusqu’à 80 alphanumériques
Tel qu’affiché sur la solution
Numéro de téléphone portable du destinataire
cePhoneNumber 10 numériques Tel qu’affiché sur la solution
Code porte ceDoorCode1 Jusqu’à 8 alphanumériques Tel que présent dans les paramètres d’appel
Code porte 2 ceDoorCode2 Jusqu’à 8 alphanumériques Tel que présent dans les paramètres d’appel
Interphone ceEntryPhone Jusqu’à 30 alphanumériques
Tel que présent dans les paramètres d’appel
Paramètre plus chargeur trParamPlus Jusqu’à 256
alphanumériques
Tel que présent dans les
paramètres d’appel
Nom commercial Oui traderCompanyName Jusqu’à 35 alphanumériques
Tel que saisi dans votre Back Office
Code erreur errorCode Jusqu’à 80
alphanumériques
Combinaison de code de la
forme xxx xxx … xxx avec xxx valant de 501 à 517 et/ou de 131 à 133.
Les codes sont séparés par des espaces. Ex : 501 508 132
URL retour échec Oui trReturnUrlKo Jusqu’à 256
alphanumériques
Transmise en GET et en POST
Pays du destinataire CePays 2 alphanumériques Tel qu’affiché sur la solution
Langue du destinataire ceLang 5 alphanumériques Tel que présent dans les
paramètres d’appel
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
42
Option international trInter 1 numérique Tel que présent dans les paramètres d’appel
Signature Oui signature 40 alphanumériques Recalculée à partir des
nouvelles valeurs des paramètres, voir paragraphe IV.6.3
Champs en erreur
Erreur sur Nom du destinataire
ERR_CENAME Jusqu’à 34 alphanumériques
Erreur sur Prénom du
destinataire ERR_CEFIRSTNAME Jusqu’à 29
alphanumériques
Erreur sur Raison sociale du destinataire
ERR_CECOMPANYNAME Jusqu’à 38 alphanumériques
Erreur sur Étage, couloir,
escalier, n° appartement du destinataire
ERR_CEADRESS1 Jusqu’à 38
alphanumériques
Erreur sur Entrée, bâtiment, immeuble, résidence du destinataire
ERR_CEADRESS2 Jusqu’à 38 alphanumériques
Erreur sur Numéro et libellé de la voie du destinataire
ERR_CEADRESS3 Jusqu’à 38 alphanumériques
Erreur sur Lieu dit ou autre
mention spéciale du destinataire
ERR_CEADRESS4 Jusqu’à 38
alphanumériques
Erreur sur Commune du destinataire
ERR_CETOWN Jusqu’à 32 alphanumériques
Erreur sur Code porte ERR_CEDOORCODE1 Jusqu’à 8 alphanumériques
Erreur sur Code porte 2 ERR_CEDOORCODE2 Jusqu’à 8 alphanumériques
Erreur sur Interphone ERR_CEENTRYPHONE Jusqu’à 30 alphanumériques
Erreur sur Autres instructions de livraison
ERR_CEDELIVERYINFORMATION
Jusqu’à 70 alphanumériques
Erreur sur Courriel du destinataire
ERR_CEEMAIL Jusqu’à 80 alphanumériques
Erreur sur Téléphone portable du destinataire
ERR_CEPHONENUMBER Jusqu’à 10 alphanumériques
Erreur sur N° client web ERR_TRCLIENTNUMBER Jusqu’à 30 alphanumériques
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
43
Erreur sur N° commande ERR_TRORDERNUMBER Jusqu’à 30 alphanumériques
Erreur sur Paramètre plus
chargeur
ERR_TRPARAMPLUS Jusqu’à 256
alphanumériques
Erreur sur Civilité du destinataire
ERR_CECIVILITY Jusqu’à 3 alphanumériques
Erreur sur Poids du colis ERR_DYWEIGHT Jusqu’à 5 alphanumériques
Erreur sur Délai préparation commande
ERR_DYPREPARATIONTIME Jusqu’à 2 alphanumériques
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
44
IV.6.3 Signature en sortie pour les modes de livraison à Domicile
La signature permet de garantir que les données que la solution « Modes de livraison »
version mobile vous transmet, ne subiront pas de modification entre l’envoi et la réception.
La signature, basée sur une clé SHA qui vous est propre vous permet d’effectuer un contrôle
des données réceptionnées.
La signature doit correspondre à celle calculée par La Poste - Colissimo (à noter que celle-ci
est calculée en minuscule au format UTF8).
Si ce n’est pas le cas, les données doivent être considérées comme altérées et le chargeur
doit mettre en place un processus de contournement basé sur la proposition d’un mode de
livraison au domicile de l’acheteur.
Calcul :
Il s’agit d’appliquer un algorithme SHA sur une concaténation de champs.
L’algorithme SHA-1 (Secure Hash Algorithm) est une fonction de hachage cryptographique. Il
produit une signature de 160 bits (40 caractères).
Son implémentation dépend de votre environnement technique. Des exemples
d’implémentations Java, Javascript, Android, iOS sont fournis en Annexe 2 Exemple de calcul
de signature SHA.
Champ pris en compte pour la signature s’ils sont renseignés
Nom du champ
Identifiant FO pudoFOID
Nom du destinataire ceName
Délai préparation commande dyPreparationTime
Total des Frais d’expédition dyForwardingCharges
N° client web trClientNumber
N° commande trOrderNumber
N° transaction orderId
Civilité du destinataire ceCivility
Prénom du destinataire ceFirstName
Raison sociale du destinataire ceCompanyName
Étage, couloir, escalier, n° appartement du destinataire
ceAdress1
Entrée, bâtiment, immeuble, résidence du destinataire
ceAdress2
Numéro et libellé de la voie du destinataire ceadress3
Lieu dit ou autre mention spéciale du destinataire
ceadress4
Code postal du destinataire ceZipCode
Commune du destinataire ceTown
Mode de livraison sélectionné deliveryMode
Autres instructions de livraison ceDeliveryInformation
Courriel du destinataire ceEmail
Numéro de téléphone portable du destinataire cePhoneNumber
Code porte ceDoorCode1
Code porte 2 ceDoorCode2
Interphone ceEntryPhone
Paramètre plus chargeur trParamPlus
Simplicité – Page « Choix des Modes de livraison » version mobile Novembre 2017
45
L’ordre des champs doit impérativement être respecté. La clé SHA qui vous a été
fournie par La Poste Colissimo doit être également concaténée à la fin de la chaîne.
Chaîne_à_convertir= pudoFOID + ceName + dyPreparationTime + dyForwardingCharges +
trClientNumber + trOrderNumber + orderId + ceCivility + ceFirstName + ceCompanyName +
ceAdress1+ ceAdress2+ ceadress3+ ceadress4+ ceZipCode + ceTown + deliveryMode +
ceDeliveryInformation + ceEmail + cePhoneNumber + ceDoorCode1+ ceDoorCode2+ ceEntryPhone +
trParamPlus+ traderCompanyName + errorCode
+ERR_CENAME+ERR_CEFIRSTNAME+ERR_CECOMPANYNAME+ERR_CEADRESS1+ERR_CEAD
RESS2+ERR_CEADRESS3+ERR_CEADRESS4+ERR_CETOWN+ERR_CEDOORCODE1+ERR_CE
DOORCODE2+ERR_CEENTRYPHONE+ERR_CEDELIVERYINFORMATION+ERR_CEEMAIL+ERR_
CEPHONENUMBER+ERR_TRCLIENTNUMBER+ERR_TRORDERNUMBER+ERR_TRPARAMPLUS+E
RR_CECIVILITY+ERR_DYWEIGHT+ERR_DYPREPARATIONTIME+
trReturnUrlKo+cePays+trInter+ceLang+cléSHA
Signature=SHA1(Chaîne_à_convertir)
Certains des champs ci-dessus peuvent ne pas être renseignés car ils n’ont pas été
transmis dans les paramètres d’appel. S’ils ne sont pas renseignés, ils ne doivent
pas être pris en compte dans le calcul de la signature
Exemple de concaténation avec les champs obligatoires uniquement:
Nom commercial traderCompanyName
Code erreur errorCode
Erreur sur Nom du destinataire ERR_CENAME
Erreur sur Prénom du destinataire ERR_CEFIRSTNAME
Erreur sur Raison sociale du destinataire ERR_CECOMPANYNAME
Erreur sur Étage, couloir, escalier, n° appartement du destinataire
ERR_CEADRESS1
Erreur sur Entrée, bâtiment, immeuble, résidence du destinataire
ERR_CEADRESS2
Erreur sur Numéro et libellé de la voie du destinataire
ERR_CEADRESS3
Erreur sur Lieu dit ou autre mention spéciale du destinataire
ERR_CEADRESS4
Erreur sur Commune du destinataire ERR_CETOWN
Erreur sur Code porte ERR_CEDOORCODE1
Erreur sur Code porte 2 ERR_CEDOORCODE2
Erreur sur Interphone ERR_CEENTRYPHONE
Erreur sur Autres instructions de livraison ERR_CEDELIVERYINFORMATION
Erreur sur Courriel du destinataire ERR_CEEMAIL
Erreur sur Téléphone portable du destinataire ERR_CEPHONENUMBER
Erreur sur N° client web ERR_TRCLIENTNUMBER
Erreur sur N° commande ERR_TRORDERNUMBER
Erreur sur Paramètre plus chargeur ERR_TRPARAMPLUS
Erreur sur Civilité du destinataire ERR_CECIVILITY
Erreur sur Poids du colis ERR_DYWEIGHT.
Erreur sur Délai préparation commande ERR_DYPREPARATIONTIME
URL retour échec trReturnUrlKo
Pays du destinataire cePays
Option international trInter
Langue du destinataire ceLang
Simplicité – Page « Choix des Modes de livraison » version mobile Novembre 2017
46
Chaîne_à_convertir= pudoFOID + ceName + dyPreparationTime + dyForwardingCharges +
orderId + ceCivility + ceFirstName + ceadress3+ ceZipCode + ceTown + deliveryMode + ceEmail +
traderCompanyName + trReturnUrlKo +cléSHA
Signature=SHA1(Chaîne_à_convertir)
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
47
IV.6.4 Retour pour les modes de livraison en Point Retrait
Paramètre Obligatoire Nom du paramètre Type Commentaire
Identifiant FO Oui pudoFOID 14 numériques Identique au paramètre d’appel
Nom du destinataire Oui ceName Jusqu’à 34 alphanumériques
Tel qu’affiché sur la solution « Modes de livraison » version mobile
Délai préparation commande Oui dyPreparationTime Jusqu’à 2 alphanumériques Tel que présent dans les paramètres d’appel
Total des Frais d’expédition Oui dyForwardingCharges Jusqu’à 5 alphanumériques avec comme séparateur
« . »
Correspond au frais d’expédition passés en entrée
N° client web trClientNumber Jusqu’à 30 alphanumériques
Tel que présent dans les paramètres d’appel
N° commande trOrderNumber Jusqu’à 30 alphanumériques
Tel que présent dans les paramètres d’appel
N° transaction Oui orderId De 5 à 16 alphanumériques
Tel que présent dans les paramètres d’appel
Civilité du destinataire Oui ceCivility MR/MME/MLE Tel qu’affiché sur la solution « Modes
de livraison » version mobile
Prénom du destinataire Oui ceFirstName Jusqu’à 29 alphanumériques
Tel qu’affiché sur la solution « Modes de livraison » version mobile
Raison sociale du destinataire ceCompanyName Jusqu’à 38 alphanumériques
Tel qu’affiché sur la solution « Modes de livraison » version mobile
Mode de livraison sélectionné Oui deliveryMode 3 alphanumériques BPR pour Bureau de Poste A2P pour Relais Pickup et consignes
Pickup Station en France ACP pour Agence Colissimo CDI pour Centre de distribution
Identifiant du Point Retrait Oui prId 6 numériques Identifiant unique du point à importer dans votre solution d’étiquetage
Libellé du Point Retrait Oui prName Jusqu’à 50 alphanumériques
Complément d’adresse du prComplAdress Jusqu’à 38
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
48
Point Retrait alphanumériques
Numéro et Libellé de voie du Point Retrait
Oui prAdress1 Jusqu’à 38 alphanumériques
Lieu dit du Point Retrait prAdress2 Jusqu’à 38 alphanumériques
Code postal du Point Retrait Oui prZipCode 5 alphanumériques
Commune du Point Retrait Oui prTown Jusqu’à 32 alphanumériques
Lot d’acheminement lotAcheminement Jusqu’à 10
alphanumériques
Présent pour les points A2P et MRL
uniquement
Voir paragraphe IV.6.6 Informations
de routage
Distribution sort distributionSort Jusqu’à 10 alphanumériques
Version du plan de tri versionPlanTri Jusqu’à 2 alphanumériques
Courriel du destinataire Oui ceEmail Jusqu’à 80 alphanumériques
Tel qu’affiché sur la solution « Modes de livraison » version mobile
Numéro de téléphone portable du destinataire
Oui cePhoneNumber 10 numériques Tel qu’affiché sur la solution « Modes de livraison » version mobile
Paramètre plus chargeur trParamPlusd Jusqu’à 256 alphanumériques
Tel que présent dans les paramètres d’appel
Nom commercial Oui traderCompanyName Jusqu’à 35 alphanumériques
Tel que saisi dans votre Back Office « Modes de livraison » version mobile
Code erreur errorCode Jusqu’à 80 alphanumériques
Combinaison de code de la forme xxx xxx … xxx avec xxx valant de 501 à 517 et/ou de 131 à 133.
Les codes sont séparés par des
espaces. Ex : 501 508 132
URL retour échec Oui trReturnUrlKo Jusqu’à 256 alphanumériques
Transmise en GET et en POST
Pays du destinataire CePays 2 alphanumériques Tel qu’affiché sur la solution
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
49
Pays du point de retrait PrPays 2 alphanumériques
Code réseau
CODERESEAU 3 alphanumériques Transmis seulement si le point de retrait choisi est en Belgique
Nécessaire pour la génération d’étiquettes de colis à l’international par votre solution d’étiquetage
Langue du destinataire ceLang 5 alphanumériques Tel que présent dans les paramètres d’appel
Option international trInter 1 numérique Tel que présent dans les paramètres
d’appel
Signature Oui signature 40 alphanumériques Recalculée à partir des nouvelles valeurs des paramètres, voir paragraphe IV.6.5 Signature en sortie pour les modes de livraison en Point
Retrait
Champs en erreur
Erreur sur Nom du
destinataire
Si code erreur
503 et que le champ est concerné par l’erreur
ERR_CENAME Jusqu’à 34
alphanumériques
Erreur sur Prénom du destinataire
Si code erreur 504 et que le champ est concerné par l’erreur
ERR_CEFIRSTNAME Jusqu’à 29 alphanumériques
Erreur sur Raison sociale du destinataire
Si code erreur 505 et que le champ est
concerné par l’erreur
ERR_CECOMPANYNAME Jusqu’à 38 alphanumériques
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
50
Erreur sur Étage, couloir, escalier, n° appartement du destinataire
Si code erreur 506 et que le champ est concerné par l’erreur
ERR_CEADRESS1 Jusqu’à 38 alphanumériques
Erreur sur Entrée, bâtiment, immeuble, résidence du destinataire
Si code erreur 507 et que le champ est
concerné par l’erreur
ERR_CEADRESS2 Jusqu’à 38 alphanumériques
Erreur sur Numéro et libellé de la voie du destinataire
Si code erreur 508 et que le champ est concerné par l’erreur
ERR_CEADRESS3 Jusqu’à 38 alphanumériques
Erreur sur Lieu dit ou autre mention spéciale du destinataire
Si code erreur 509 et que le champ est concerné par l’erreur
ERR_CEADRESS4 Jusqu’à 38 alphanumériques
Erreur sur Commune du destinataire
Si code erreur 510 et que le champ est concerné par l’erreur
ERR_CETOWN Jusqu’à 32 alphanumériques
Erreur sur Code porte Si code erreur 513 et que le champ est concerné par l’erreur
ERR_CEDOORCODE1 Jusqu’à 8 alphanumériques
Erreur sur Code porte 2 Si code erreur 514 et que le
champ est concerné par l’erreur
ERR_CEDOORCODE2 Jusqu’à 8 alphanumériques
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
51
Erreur sur Interphone Si code erreur 511 et que le champ est concerné par l’erreur
ERR_CEENTRYPHONE Jusqu’à 30 alphanumériques
Erreur sur Autres instructions de livraison
Si code erreur 512 et que le champ est
concerné par l’erreur
ERR_CEDELIVERYINFORMATION
Jusqu’à 70 alphanumériques
Erreur sur Courriel du destinataire
Si code erreur 501 et que le champ est concerné par l’erreur
ERR_CEEMAIL Jusqu’à 80 alphanumériques
Erreur sur Téléphone portable du destinataire
Si code erreur 502 et que le champ est concerné par l’erreur
ERR_CEPHONENUMBER Jusqu’à 10 alphanumériques
Erreur sur N° client web Si code erreur 515 et que le champ est concerné par l’erreur
ERR_TRCLIENTNUMBER Jusqu’à 30 alphanumériques
Erreur sur N° commande Si code erreur 516 et que le champ est concerné par l’erreur
ERR_TRORDERNUMBER Jusqu’à 30 alphanumériques
Erreur sur Paramètre plus chargeur
Si code erreur 517 et que le
champ est concerné par l’erreur
ERR_TRPARAMPLUS Jusqu’à 256 alphanumériques
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
52
Erreur sur Civilité du destinataire
Si code erreur 131 et que le champ est concerné par l’erreur
ERR_CECIVILITY Jusqu’à 3 alphanumériques
Erreur sur Poids du colis Si code erreur 133 et que le champ est
concerné par l’erreur
ERR_DYWEIGHT Jusqu’à 5 alphanumériques
Erreur sur Délai préparation commande
Si code erreur 132 et que le champ est concerné par l’erreur
ERR_DYPREPARATIONTIME Jusqu’à 2 alphanumériques
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
53
IV.6.5 Signature en sortie pour les modes de livraison en Point Retrait
La signature permet de garantir que les données que la Solution « Modes de livraison »
version mobile vous transmet ne subiront pas de modifications entre l’envoi et la réception.
La signature, basée sur une clé SHA qui vous est propre vous permet d’effectuer un contrôle
des données réceptionnées.
La signature doit correspondre à celle calculée par La Poste - Colissimo (à noter que celle-ci
est calculée en minuscule au format UTF8).
Si ce n’est pas le cas, les données doivent être considérées comme altérées et le chargeur
doit mettre en place un processus de contournement basé sur la proposition d’un mode de
livraison au domicile de l’acheteur
Calcul : il s’agit d’appliquer un algorithme SHA sur une concaténation de champs.
L’algorithme SHA-1 (Secure Hash Algorithm) est une fonction de hachage cryptographique. Il
produit une signature de 160 bits (40 caractères). Son implémentation dépend de votre
environnement technique. Des exemples d’implémentations Java, Javascript, Android, iOS
sont fournies en Annexe 2 Exemple de calcul de signature SHA.
Champ pris en compte pour la signature
pour les modes de livraison en Point Retrait
Nom du champ
Identifiant FO pudoFOID
Nom du destinataire ceName
Délai préparation commande dyPreparationTime
Total des Frais d’expédition dyForwardingCharges
N° client web trClientNumber
N° commande trOrderNumber
N° transaction orderId
Civilité du destinataire ceCivility
Prénom du destinataire ceFirstName
Raison sociale du destinataire ceCompanyName
Mode de livraison sélectionné deliveryMode
Identifiant du Point Retrait prId
Libellé du Point Retrait prName
Complément d’adresse du Point Retrait prComplAdress
Numéro et Libellé de voie du Point Retrait prAdress1
Lieu dit du Point Retrait prAdress2
Code postal du Point Retrait prZipCode
Commune du Point Retrait prTown
Lot d’acheminement lotAcheminement
Distribution sort distributionSort
Version du plan de tri versionPlanTri
Courriel du destinataire ceEmail
Numéro de téléphone portable du destinataire cePhoneNumber
Paramètre plus chargeur trParamPlus
Nom commercial traderCompanyName
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
54
Code erreur errorCode
Erreur sur Nom du destinataire ERR_CENAME
Erreur sur Prénom du destinataire ERR_CEFIRSTNAME
Erreur sur Raison sociale du destinataire ERR_CECOMPANYNAME
Erreur sur Étage, couloir, escalier, n° appartement du destinataire
ERR_CEADRESS1
Erreur sur Entrée, bâtiment, immeuble,
résidence du destinataire
ERR_CEADRESS2
Erreur sur Numéro et libellé de la voie du destinataire
ERR_CEADRESS3
Erreur sur Lieu dit ou autre mention spéciale du destinataire
ERR_CEADRESS4
Erreur sur Commune du destinataire ERR_CETOWN
Erreur sur Code porte ERR_CEDOORCODE1
Erreur sur Code porte 2 ERR_CEDOORCODE2
Erreur sur Interphone ERR_CEENTRYPHONE
Erreur sur Autres instructions de livraison ERR_CEDELIVERYINFORMATION
Erreur sur Courriel du destinataire ERR_CEEMAIL
Erreur sur Téléphone portable du destinataire ERR_CEPHONENUMBER
Erreur sur N° client web ERR_TRCLIENTNUMBER
Erreur sur N° commande ERR_TRORDERNUMBER
Erreur sur Paramètre plus chargeur ERR_TRPARAMPLUS
Erreur sur Civilité du destinataire ERR_CECIVILITY
Erreur sur Poids du colis ERR_DYWEIGHT
Erreur sur Délai préparation commande ERR_DYPREPARATIONTIME
URL retour échec trReturnUrlKo
Pays du destinataire cePays
Option international trInter
Langue du destinataire ceLang
L’ordre des champs doit impérativement être respecté. La clé SHA qui vous a été
fournie par La Poste - Colissimo doit être également concaténée à la fin de la
chaîne.
Chaîne_à_convertir= pudoFOID + ceName + dyPreparationTime + dyForwardingCharges +
trClientNumber + trOrderNumber + orderId + ceCivility + ceFirstName + ceCompanyName +
deliveryMode + prId + prName + prComplAdress + prAdress1+ prAdress2+ prZipCode +
prTown + lotAcheminement + distributionSort + versionPlanTri + ceEmail + cePhoneNumber +
trParamPlus + traderCompanyName +
errorCode+ERR_CENAME+ERR_CEFIRSTNAME+ERR_CECOMPANYNAME+ERR_CEADRESS1+
ERR_CEADRESS2+ERR_CEADRESS3+ERR_CEADRESS4+ERR_CETOWN+ERR_CEDOORCODE1+ERR_CEDOORCODE2+ERR_CEENTRYPHONE+ERR_CEDELIVERYINFORMATION+ERR_CEEMAIL+ERR_CEPHONENUMBER+ERR_TRCLIENTNUMBER+ERR_TRORDERNUMBER+ ERR_TRPARAMPLUS +ERR_CECIVILITY + ERR_DYWEIGHT+ERR_DYPREPARATIONTIME+ trReturnUrlKo+c+ cePays+trInter+ceLang léSHA
Signature=SHA1(Chaîne_à_convertir)
Certains des champs ci-dessus peuvent ne pas être renseignés car ils n’ont pas été
transmis dans les paramètres d’appel. S’ils ne sont pas renseignés, ils ne doivent
pas être pris en compte dans le calcul de la signature.
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
55
Exemple de concaténation avec les champs obligatoires uniquement:
Chaîne_à_convertir= pudoFOID + ceName + dyPreparationTime + dyForwardingCharges +
orderId + ceCivility + ceFirstName + deliveryMode + prId + prName + prAdress1+ prZipCode +
prTown + ceEmail + cePhoneNumber + traderCompanyName + trReturnUrlKo +
cePays+trInter+ceLang +cléSHA
Signature=SHA1(Chaîne_à_convertir)
IV.6.6 Informations de routage
Les champs Lot d’acheminement, Distribution sort et Version du plan de tri sont nécessaires
pour les clients utilisant une solution d’étiquetage spécifique LIBERTE.
Il faut se reporter aux documents suivants pour l’utilisation de ces données :
2_LIBERTE_Cahier des Charges - Etiquettes Colissimo et
2_LIBERTE_Spécifications techniques EDI
Pour les clients utilisant une solution d’étiquetage SIMPLICITE (Expeditor Inet) ou
FLEXIBILITE (WS d’étiquetage) ces informations sont à ignorer.
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
56
IV.6.7 Retours sur l’URL retour Echec
Si l’acheteur n’a pas réussi à accéder à la solution :
dans le cas d’une intégration en web mobile, les paramètres suivants sont transmis en POST. L’URL retour échec est
transmise en GET et en POST afin d’assurer la continuité de service en cas d’indisponibilité technique de La Poste
Colissimo.
dans le cas d’une intégration dans une application native, l’ensemble des paramètres sont transmis en GET
Paramètre Obligatoire Nom du paramètre Type Commentaire
Identifiant FO pudoFOID 14 numériques Identique au paramètre d’appel
Nom du destinataire ceName Jusqu’à 34 alphanumériques
Tel que présent dans les paramètres d’appel
Délai de préparation de commande
dyPreparationTime Jusqu’à 2 numériques
Tel que présent dans les paramètres d’appel
Frais d’expédition dyForwardingCharges De 1 à 5 alphanumériques
Tel que présent dans les paramètres d’appel
Frais d’expédition Relais Pickup
dyForwardingChargesCMT De 1 à 5 alphanumériques
Tel que présent dans les paramètres d’appel
N° client web trClientNumber Jusqu’à 30 alphanumériques
Tel que présent dans les paramètres d’appel
N° Commande trOrderNumber Jusqu’à 30 alphanumériques
Tel que présent dans les paramètres d’appel
N° transaction orderId De 5 à 16
alphanumériques
Tel que présent dans les paramètres d’appel
Paramètre plus chargeur trParamPlus Jusqu’à 256 alphanumériques
Tel que présent dans les paramètres d’appel
Signature Oui signature 40
alphanumériques
Code Erreur Oui errorCode 3 numériques 1 seul code erreur par retour échec
URL retour échec Oui trReturnUrlKo Jusqu’à 256
alphanumériques
Transmise en GET et en POST
Pays du destinataire CePays 2 caractères alphanumériques
Tel qu’affiché sur la solution
Simplicité – Page « Choix des Modes de livraison » version mobile Octobre 2017
57
Option International TrInter 1 caractère numérique (0 ;1)
Tel que présent dans les paramètres d’appel
Langue du destinataire CeLang 5 caractères alphanumériques
Tel que présent dans les paramètres d’appel
Champs en erreurs
Erreur sur Identifiant FO Oui si code erreur 001,
002 ou 003
ERR_PUDOFOID Jusqu’à 14 alphanumériques
Erreur sur Signature Oui si code
erreur 006 ou 007
ERR_SIGNATURE Jusqu’à 40
alphanumériques
Erreur sur Frais d’expédition
Oui si code erreur 004 ou 012 et
concerné par l’erreur
ERR_DYFORWARDINGCHARGES
Jusqu’à 5 alphanumériques
Erreur sur Frais d’expédition Relais Pickup
Oui si code erreur 012 et concerné par
l’erreur
ERR_DYFORWARDINGCHARGESCMT
Jusqu’à 5 alphanumériques
Erreur sur N° transaction Oui si code erreur 011 ou 004 et concerné par
l’erreur
ERR_ORDERID Jusqu’à 30 alphanumériques
Erreur sur Code postal du destinataire
Oui si code erreur 008
ERR_CEZIPCODE Jusqu’à 5 alphanumériques
Erreur sur Url de retour validation
Oui si code erreur 009
ERR_TRRETURNURLOK Jusqu’à 256 alphanumériques
Erreur sur Url de retour échec
Oui si code erreur 004 ou
010
ERR_TRRETURNURLKO Jusqu’à 256 alphanumériques
Simplicité – Page « Choix Modes de livraison » version mobile – Octobre 2017
58
IV.6.8 Signature en sortie en cas d’échec
La signature permet de garantir que les données transmises par la solution ne subiront pas
de modification entre l’envoi et la réception.
La signature, basée sur une clé SHA qui vous est propre vous permet d’effectuer un contrôle
des données réceptionnées.
La signature doit correspondre à celle calculée par La Poste - Colissimo (à noter que celle-ci
est calculée en minuscule au format UTF8).
Si ce n’est pas le cas, les données doivent être considérées comme altérées et le chargeur
doit mettre en place un processus de contournement basé sur la proposition d’un mode de
livraison au domicile de l’acheteur
Calcul : il s’agit d’appliquer un algorithme SHA sur une concaténation de champs.
L’algorithme SHA-1 (Secure Hash Algorithm) est une fonction de hachage cryptographique. Il
produit une signature de 160 bits (40 caractères). Son implémentation dépend de votre
environnement technique. Des exemples d’implémentations Java, Javascript, Android, iOS
sont fournies en Annexe 2 Exemple de calcul de signature SHA
Champ pris en compte pour la signature
en cas d’échec Nom du champ
Obligatoire
Identifiant FO pudoFOID
Nom du destinataire ceName
Délai de préparation de commande dyPreparationTime
Frais d’expédition dyForwardingCharges
Frais d’expédition Relais Pickup dyForwardingChargesCMT
N° client web trClientNumber
N° Commande trOrderNumber
N° transaction orderId
Paramètre plus chargeur trParamPlus
Code Erreur errorCode Oui
Erreur sur Identifiant FO ERR_PUDOFOID Oui si code erreur 001, 002 ou 003
Erreur sur Signature ERR_SIGNATURE Oui si code erreur 006 ou 007
Erreur sur Frais d’expédition ERR_DYFORWARDINGCHARGES Oui si code erreur 012 ou
004 et concerné par l’erreur
Erreur sur Frais d’expédition commerçants ERR_DYFORWARDINGCHARGESCMT Oui si code
erreur 012 et concerné par
l’erreur
Erreur sur N° transaction ERR_ORDERID Oui si code erreur 011 ou 004 et concerné
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
59
par l’erreur
Erreur sur Code postal du destinataire ERR_CEZIPCODE Oui si code erreur 008
Erreur sur Url de retour validation ERR_TRRETURNURLOK Oui si code
erreur 009
Erreur sur Url de retour échec ERR_TRRETURNURLKO Oui si code erreur 010 ou 004 et concerné par l’erreur
URL retour échec trReturnUrlKo Oui
Pays du destinataire CePays
Option International TrInter
Langue du destinataire CeLang
L’ordre des champs doit impérativement être respecté. La clé SHA qui vous a été
fournie par La Poste Colissimo doit être également concaténée à la fin de la chaîne.
Chaîne_à_convertir=pudoFOID+ceName+dyPreparationTime+dyForwardingCharges+dyForwardi
ngChargesCMT+trClientNumber+trOrderNumber+orderId+trParamPlus+errorCode+ERR_PUDOFOID+
ERR_SIGNATURE+ERR_DYFORWARDINGCHARGES+ERR_DYFOWARDINGCHARGESCMT+ERR_ORDERID+ERR_CEZIPCODE+ERR_TRRETURNURLOK+ERR_TRRETURNURLKO+TRRETURNURLKO+ cePays+trInter+ceLang cléSHA
Signature=SHA1(Chaîne_à_convertir)
Certains des champs ci-dessus peuvent ne pas être renseignés car ils n’ont pas été
transmis dans les paramètres d’appel. S’ils ne sont pas renseignés, ils ne doivent
pas être pris en compte dans le calcul de la signature.
Exemple de concaténation avec une liste de champs restreinte:
Chaîne_à_convertir= pudoFOID+dyForwardingCharges+orderId+errorCode +
ERR_DYFORWARDINGCHARGES+trReturnUrlKo+cléSHA
Signature=SHA1(Chaîne_à_convertir)
Particularité des codes erreurs 001, 002, 015 :
Dans ces cas d’erreur le compte appelant ne peut être identifié par la solution, l’identifiant
FO étant non transmis, incorrect, ou bien le service La Poste Colissimo dégradé.
Il n’est pas possible pour la solution d’identifier la clé SHA-1 qui vous est propre et
donc de retourner la signature correspondante.
Simplicité – Page « Choix Modes de livraison » version mobile – Octobre 2017
60
V. ANNEXES
V.1 Annexe 1 : Champs de la solution « Modes de livraison » version mobile
Libellé du champ Type Obligatoire Modifiable Longueur
Saisie des informations personnelles
Civilité Bouton Oui Oui
Nom Alphanumérique Oui Oui 1..34
Prénom Alphanumérique Oui Oui 1..29
Raison sociale (si Professionnelle)
Alphanumérique Oui 0..38
Étage, couloir, escalier, n° appartement
Alphanumérique Oui 0..38
Entrée, bâtiment, immeuble, résidence
Alphanumérique Oui 0..38
Lieu dit ou autre mention
spéciale
Alphanumérique Oui 0..38
Numéro et libellé de la voie Alphanumérique Oui Oui 1..38
Code postal Alphanumérique Oui Oui 5
Commune Alphanumérique Oui Oui 1..32
Pays Alphanumérique Si paramètre « option international »=1
0..32
Courriel Alphanumérique Oui Oui 5..80
Téléphone portable Numérique Oui 0..10
Nouvelle recherche de Points Retrait à proximité
Numéro et libellé de voie Alphanumérique Oui 1..38
Code postal Alphanumérique Oui 5
Commune Alphanumérique Oui 1..32
Pays Alphanumérique Si paramètre « option international »=1
0..32
Validation du N°de téléphone portable
Téléphone portable Numérique Oui 0..10
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
61
V.2 Annexe 2 : Exemple de calcul de signature SHA
Exemple Java
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.commons.codec.binary.Hex;
/* Chiffre en SHA une chaine fournie en paramètre puis effectue une conversion en hexadécimal. * Retourne <code>null</code> en cas d'exception. * @param stringToDigestAndConvert La chaine a traiter * @param algorithm L'algorithme a utiliser * @return La chaine chiffree et convertie en hexa. */ private String digestAndConvertToHexString(String stringToDigestAndConvert) {
String ALGORITHM = "SHA-1"; // Encodage try { MessageDigest md = MessageDigest.getInstance(ALGORITHM); md.update(stringToDigestAndConvert.getBytes()); // Conversion en hexa avec Apache Commons Codec return String.valueOf(Hex.encodeHex(md.digest()));
} catch (NoSuchAlgorithmException nsae) { return null; } }
Le calcul de la signature SHA est réalisé par une classe interne au jdk <
(version >=1.4.2)
la librairie qui réalise la conversion en hexadécimal est :
commons-codec 1.3 (http://commons.apache.org/codec/ )
Exemple Javascript
function SHA1 (msg) {
function rotate_left(n,s) {
var t4 = ( n<<s ) | (n>>>(32-s));
return t4;
};
function lsb_hex(val) {
var str="";
var i;
var vh;
var vl;
for( i=0; i<=6; i+=2 ) {
vh = (val>>>(i*4+4))&0x0f;
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
62
vl = (val>>>(i*4))&0x0f;
str += vh.toString(16) + vl.toString(16);
}
return str;
};
function cvt_hex(val) {
var str="";
var i;
var v;
for( i=7; i>=0; i-- ) {
v = (val>>>(i*4))&0x0f;
str += v.toString(16);
}
return str;
};
var blockstart;
var i, j;
var W = new Array(80);
var H0 = 0x67452301;
var H1 = 0xEFCDAB89;
var H2 = 0x98BADCFE;
var H3 = 0x10325476;
var H4 = 0xC3D2E1F0;
var A, B, C, D, E;
var temp;
var msg_len = msg.length;
var word_array = new Array();
for( i=0; i<msg_len-3; i+=4 ) {
j = msg.charCodeAt(i)<<24 | msg.charCodeAt(i+1)<<16 |
msg.charCodeAt(i+2)<<8 | msg.charCodeAt(i+3);
word_array.push( j );
}
switch( msg_len % 4 ) {
case 0:
i = 0x080000000;
break;
case 1:
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
63
i = msg.charCodeAt(msg_len-1)<<24 | 0x0800000;
break;
case 2:
i = msg.charCodeAt(msg_len-2)<<24 | msg.charCodeAt(msg_len-1)<<16 | 0x08000;
break;
case 3:
i = msg.charCodeAt(msg_len-3)<<24 | msg.charCodeAt(msg_len-2)<<16 | msg.charCodeAt(msg_len-
1)<<8 | 0x80;
break;
}
word_array.push( i );
while( (word_array.length % 16) != 14 ) word_array.push( 0 );
word_array.push( msg_len>>>29 );
word_array.push( (msg_len<<3)&0x0ffffffff );
for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) {
for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i];
for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);
A = H0;
B = H1;
C = H2;
D = H3;
E = H4;
for( i= 0; i<=19; i++ ) {
temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
E = D;
D = C;
C = rotate_left(B,30);
B = A;
A = temp;
}
for( i=20; i<=39; i++ ) {
temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
E = D;
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
64
D = C;
C = rotate_left(B,30);
B = A;
A = temp;
}
for( i=40; i<=59; i++ ) {
temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
E = D;
D = C;
C = rotate_left(B,30);
B = A;
A = temp;
}
for( i=60; i<=79; i++ ) {
temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
E = D;
D = C;
C = rotate_left(B,30);
B = A;
A = temp;
}
H0 = (H0 + A) & 0x0ffffffff;
H1 = (H1 + B) & 0x0ffffffff;
H2 = (H2 + C) & 0x0ffffffff;
H3 = (H3 + D) & 0x0ffffffff;
H4 = (H4 + E) & 0x0ffffffff;
}
var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
return temp.toLowerCase();
}
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
65
Exemple Android
Conversion d’un tableau de bytes en string hexa.
return byteArrayToHexString(md.digest(convertme))
Fonction détaillée
public static String byteArrayToHexString(byte[] b) {
String result = "";
for (int i=0; i < b.length; i++) {
result +=
Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
}
return result;
}
Exemple iOS
La méthode à appeler est CC_SHA (data, size, pointeur sur string)
Voici un exemple d’utilisation de cette méthode dans une fonction qui prend une NSString en
paramètre et renvoie une NSString.
#import <CommonCrypto/CommonDigest.h>
-(NSString*) sha1:(NSString*)input { const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:input.length]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; bool sha1fct = CC_SHA1(data.bytes, data.length, digest); /* * handle sha1 function fail here if necessary */ NSAssert(sha1fct, @"Sha1 function fail with : %@", input); NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) [output appendFormat:@"%02x", digest[i]]; NSLog(@"sha1 : %@", output);
Simplicité – Page « Choix des Modes de livraison » version mobile – Novembre 2017
66
return output; }
V.3 Annexe 3 : Liste des pays éligibles à l’offre Colissimo Europe (international) et codes réseaux et produits correspondants aux livraisons
en points retrait
La liste des pays éligibles à l’offre Colissimo International Point Retrait (aussi appelée l’offre
Colissimo Domicile et Point Retrait vers l’Europe) est disponible via le lien suivant:
https://www.colissimo.entreprise.laposte.fr/fr/pays-eligible-international
Liste des codes réseaux correspondants
Code Pays Code Produit Réseau
BE CMT R12
BE BDP R12
DE CMT R03
NL CMT R03
LU CMT R03
ES CMT R03
GB CMT R03
PT CMT R03
AT CMT R03
HU CMT R03
LT CMT R03
LV CMT R03
EE CMT R03
LT PCS R03
LV PCS R03
EE PCS R03
IE CMT R03
NB :
Les Pays Baltes (EE, LV, LT) seront ouverts prochainement sur la Page Mobile,
Les points retraits des pays : République Tchèque, Slovaquie, Slovénie, Danemark,
Finlande, Suède et Pologne seront ouverts à partir de janvier 2018.