Citation (saphir52 @ 11 Mar 2011, 10:02)

Message lorsque j'active en clair ou codé les prénoms ou rues avec é è à ....
errorcode: array(12) { ["PUDOFOID"]=> string(14) "xxxxxxxxxx" ["CENAME"]=> string(7) "xxxxxx" ["DYPREPARATIONTIME"]=> string(0) "" ["DYFORWARDINGCHARGES"]=> string(1) "0" ["TRCLIENTNUMBER"]=> string(0) "" ["TRORDERNUMBER"]=> string(0) "" ["ORDERID"]=> string(9) "111001476" ["TRPARAMPLUS"]=> string(0) "" ["ERRORCODE"]=> string(4) "007 " ["ERR_SIGNATURE"]=> string(40) "63c3f861d182f02edadde5ab1e3e47f1240ef9a4" ["SIGNATURE"]=> string(40) "3c2422b926b09562b10d5e812aa77f1eb14c4594" ["NUMVERSION"]=> string(3) "3.0" }
Citation (saphir52 @ 11 Mar 2011, 10:02)

Code
$firstname = $shipping_address['entry_firstname'];
$firstname = preg_replace('/[^\x2D-\x5B\x61-\x7D\x82\xE0-\xFF\x20]/', '', $firstname);
$firstname = substr($firstname, 0, 34);</P> <P>
En fait ce qu'il faudrait c'est un strtoupper sans accents, tenant compte des entités HTML, je n'ai pas cherché par fénéantise, ceci dit il est sur que ca existe et si quelqu'un a un code propre je l'implémenterais... (propre ...)
Donc j'ai effectivement poussé à l'extrème les règles de filtrage car la réalité n'a jamais correspondu à la documentation et comme la clé est basée sur ces infos, il faut que le champ soit exempt de caractères incorrectes, sinon on se "tape" une erreur 007.
Ce qui est le cas dans ton exemple.
Ceci dit je suis entrain de coder un nouveau module pour une autre solution donc je viendrais corriger tous les cas "d'école" que nous avons subit.
Voici quand même quelques informations interessantes, je peux pas attacher le fichier ni le rendre public, mais une partie que je peux vous donner venant des services techniques :
Citation
ETAPE 1 - Vérifier que le client utilise le bon produit SoColissimo PUDO
Après signature du contrat avec la/le commercial, le E-Marchant reçois des accès (login/mp) par mail. Avec cette accès il peut se connecté sur :
https://www.coliposte.net/pro/services/accueil_pro.jsp puis
Via la rubrique :
Vérifier que le client à bien configuré le back office les 3 premières valeurs sont obligatoires:
- Génération de la clé de cryptage
- Identifiant Front Office
- Liens/URL KO et OK
- Non obligatoire ajout des logos pour la page sandwich
ETAPE 2 – Vérifier que le client envoi les bons paramètres à la page
Pour utiliser la page interstitiel le client doit envoyer des paramètres pour laisser au client le choix du mode de livraison. Voici les paramètres obligatoires que le client doit envoyer à la page sandwich. Dans le cas d’un paramètre manquant la page retourne une erreur dans les données POST.
Champs Nom dans le HTML Obligatoire
Identifiant FO pudoFOId Oui
Frais d’expédition dyForwardingCharges Oui
N° transaction orderId Oui
Signature signature Oui
ETAPE 3 – Vérifier l’algorithme de génération de la signature
Chaîne_à_convertir= pudoFOId+ceName+ dyPreparationTime+ dyForwardingCharges+ trClientNumber+ trOrderNumber+ orderId+cléSHA
Signature=SHA1(Chaîne_à_convertir)
Le client doit utiliser la fonction JavaScript en PJ dans le fichier webtoolkit.js
Info utile : Indiquer au client qu’il peut faire la génération de la signature en JavaScript, mai qu’il est fortement recommander de la faire également en PHP (coté serveur).
ETAPE 4 – Vérifier la bonne génération du Numéro de transaction orderID
Ce numéro est utilisé pour identifier les utilisateurs sur la page interstitiel. (Plusieurs clients peuvent se connecter en même temps sur la page interstitiel). Le client doit donc impérativement gérer son propre numéro, pour pouvoir associer la commande de son client et le mode de livraison. Ce numéro doit êtres unique. La variable orderID est composé de 5 à 16 caractères alphanumériques
ETAPE 5 – Vérifier les URL retour
Vérifier la non présence de chemin relatif dans les URL retour
VALIDE
NON VALIDE
Vérifier la longueur des URLs
256 caractères alphanumériques maximum
ETAPE 6 – Vérifier que le client utilise le bon type de compte
Deux solutions possibles :
liberté : la poste fournit un fichier de la liste des points de retrait en EDI
Simplicité : La page interstitiel
Citation
Les codes erreurs les plus courants :
006 Signature manquante
La signature n’est pas transmise dans les paramètres d’appel. - Bloquant
007 Signature invalide
La signature transmise 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
011 Numéro de transaction non valide
Le numéro de transaction transmis dans les paramètres d’appel n’est pas valide. - Bloquant
C'est une préciseuse synthèse que je n'hésiterais pas à mettre en oeuvre dans la nouvelle release, ceci dit si quelqu'un veut bien m'aider ce serait volontier