Up2pay e‑Transactions

Livraison et point relais avec Up2pay

Mis à jour le

Un paiement ne doit rien changer à la livraison. C’est un engagement du périmètre de la version 1 : conserver strictement l’adresse de livraison et les métadonnées de point relais.

Le risque à éviter

Une commande WooCommerce contient l’adresse de livraison et, souvent, des informations ajoutées par une extension de transport : identifiant du point relais, nom, adresse. Ces informations sont stockées dans la commande sous forme de métadonnées.

Le problème classique vient d’un objet commande chargé trop tôt. Si une extension de paiement garde en mémoire une version ancienne de la commande, puis l’enregistre après le paiement, elle peut écraser ce qu’une autre extension a écrit entre-temps. Le point relais choisi disparaît ou revient à une ancienne valeur.

Ce que le plugin lit et écrit

Il ne touche jamais :

  • aux champs de livraison shipping_* : ni lecture, ni écriture ;
  • aux métadonnées d’autres extensions, comme celles d’un transporteur (Mondial Relay, Colissimo, Chronopost, Boxtal…).

Il écrit uniquement :

  • ses propres métadonnées, dont le nom commence par _relqor_ : tentatives de paiement, notifications déjà traitées, numéro de transaction, code de retour ;
  • le statut de la commande et ses notes, après une notification signée et vérifiée.

Il lit, pour construire la demande de paiement :

  • l’adresse de facturation (prénom, nom, adresse, code postal, ville, pays) et l’e‑mail de facturation, exigés par la banque pour le 3-D Secure, ainsi que le téléphone, envoyé seulement s’il peut être mis au bon format ;
  • le total de la commande et la quantité d’articles.

L’adresse de facturation est lue, jamais modifiée. Si un champ obligatoire manque, le paiement est refusé avant la redirection, sans valeur inventée. Voir Adresse de facturation incomplète.

Comment la commande est enregistrée

  • Chaque enregistrement part d’une commande rechargée dans la même requête, jamais d’une copie ancienne.
  • Lors de la notification (IPN), le plugin prend d’abord un verrou sur la commande, puis la recharge. Il ne réutilise jamais un objet obtenu avant ce verrou.
  • Tous les accès passent par les fonctions standard de WooCommerce. Cela fonctionne de la même façon avec le stockage HPOS et avec le stockage « posts ».

Ce que les tests vérifient

Les tests automatisés du plugin reproduisent ces situations, en HPOS et en stockage « posts » :

  • Avant et après paiement : une commande a une adresse de livraison différente de la facturation et des métadonnées de point relais qui imitent trois transporteurs, avec des accents et du JSON dans les valeurs. On compare toutes les métadonnées hors _relqor_* et tous les champs de livraison avant le paiement, puis après une notification de paiement accepté. Ils doivent être identiques octet pour octet.
  • Modification entre-temps : une autre extension modifie le point relais entre le départ vers la banque et la notification. La valeur modifiée doit être conservée.
  • Dans un navigateur : un checkout avec une adresse de livraison différente et un point relais simulé. Après la notification, l’écran de la commande doit afficher la même adresse et le même point relais.

Vérifier sur votre boutique

Après l’installation, et après chaque mise à jour de votre extension de transport :

  1. Passez le plugin en mode test (voir Mode test et production).
  2. Passez une commande avec une adresse de livraison différente de l’adresse de facturation et choisissez un point relais.
  3. Avant de payer, notez le point relais choisi.
  4. Payez avec une carte de test et attendez que la commande passe en « En cours ».
  5. Dans WooCommerce › Commandes, ouvrez la commande et comparez : adresse de livraison, mode de livraison, point relais.
  6. Si votre extension de transport crée une étiquette ou transmet la commande au transporteur, vérifiez aussi le point relais à cette étape.

Si une différence apparaît, notez les notes de la commande et les messages du journal relqor (WooCommerce › État › Journaux), puis contactez le support.

Pour aller plus loin : Point relais écrasé après paiement : pourquoi et comment l’éviter.