Projet

Général

Profil

Development #9941

possibilité de passer l'ordre d'achat(numéro de facture) à tous les backends de paiement

Ajouté par Serghei Mihai il y a environ 8 ans. Mis à jour il y a environ 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
11 février 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Afin de remonter dans les transactions du côté du système de paiement et faciliter le pointage des paiements


Fichiers


Demandes liées

Lié à Combo - Development #9793: Possibilité de passer des paramètres supplémentaires lors de l'envoi d'un paiement au module bancaireRejeté28 janvier 201610 février 2016

Actions

Révisions associées

Révision 8cd625e4 (diff)
Ajouté par Serghei Mihai il y a environ 8 ans

pass order id to all backends (#9941)

Historique

#1

Mis à jour par Serghei Mihai il y a environ 8 ans

  • Lié à Development #9793: Possibilité de passer des paramètres supplémentaires lors de l'envoi d'un paiement au module bancaire ajouté
#2

Mis à jour par Serghei Mihai il y a environ 8 ans

  • Fichier 0001-pass-order-id-to-all-backends-9941.patch ajouté
  • Statut changé de Nouveau à En cours
  • Patch proposed changé de Non à Oui
#3

Mis à jour par Serghei Mihai il y a environ 8 ans

  • Fichier 0001-pass-order-id-to-all-backends-9941.patch supprimé
#5

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

Le transaction_id n'est pas là pour faire jolie, il faut trouver un moyen de le transférer sinon impossible de différencier deux requêtes différentes.

J'ai mis dans le wiki les docs de tous les systèmes de paiement, il faut passer sur chacun d'entre eux et voir s'il y a un champ prévu pour ça. La plupart ont un champ pour la référence commande et un autre pour un id de transaction.

Si ce n'est pas le cas (notamment pour Paybox1) alors il faut encoder transaction_id + order_id proprement dans le champs PBX_CMD (un séparateur qui n'apparait pas dans transaction_id doit suffire2) puis l'extraire quand ça revient dans la réponse.

Ensuite il faudra aussi vérifier que c'est bien cet identifiant qui apparait dans le backoffice pour la recherche de transactions, ça dépend vraiment des backoffices.

Voilà, voilà :) Et puis quand ce sera tout bien documenté, il faudra recopier ces informations dans le README d'eopayment, merci bien.

1 http://www1.paybox.com/espace-integrateur-documentation/dictionnaire-des-donnees/paybox-system/

2 code qui pourrait faire ça

PBX_CMD = order_id + '!' + transaction_id # entrée
order_id, transaction_id = PBX_CMD.rsplit('!', 1) # sortie

#6

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

Pour tipi je virerai refdet c'est le seul à supporter ce champ, je ferai la même tambouille que pour paybox puisqu'on a un qu'un champ.

#7

Mis à jour par Serghei Mihai il y a environ 8 ans

Pour TIPI je pensais garder refdet pour la retrocompatibilité.

#8

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

Ok.

#9

Mis à jour par Serghei Mihai il y a environ 8 ans

Patch à jour.
Ogone semble avoir également un champ unique pour le "orderid. Donc j'ai fait la même chose que pour Paybox.
Dans le backoffice Paybox, par exemple, il n'y a que le champs orderid et rien pour la transaction, donc le fait de concatener les 2 séparés par "!" devrait suffire pour matcher le numéro de la facture(commande) et la transaction.

#10

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

Il faut vérifier les formats autorisés, tout n'est pas parmis, par exemple pour payzen/system vads_order_id c'est (p.126 de la doc payzen):

vads_order_id
Description
Numéro de commande. Il est également inclu dans l'e-mail de confirmation de
paiement adressé à l’acheteur.
Champ au format alphanumérique. Seul le caractère spécial « - » est autorisé.
S'il contient un caractère spécial (&, ;, @, etc...), la plateforme de paiement
retourne une erreur.
Format an..32
Code erreur 13
Catégorie Informations sur la commande.

Donc il faut s'assurer que ça rentre dans les 32 caractères et que ça rentre et que ça respecte les limitations sur les caractères; coté sips, paybox tipi il ne semble pas y avoir de limitation, Pour ogone difficile de savoir, je dirai alphanumérique et tiret 30 caractères max (mais j'ai lu 40 aussi).

#11

Mis à jour par Serghei Mihai il y a environ 8 ans

Dans certaines doc Ogone j'ai trouvé l'info suivante pour le champs ORDERID: "The exact accepted length and data validation format depend on the acquirer/bank." Donc je pars du principe que c'est 30 caractères.

#12

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

Pour Orgone je réduirai la longueur du transaction_id en fonction de la longue de order_id, sinon ça va péter dès que len(order_id) > 10, un id de transaction de 4 caractères parmi 36 ça parait suffisant au pire.

if order_id:
    if len(order_id) > 25:  # 36^4 gives more than 1 million transaction id, it should be enough 
        raise ValueError('order_id length exceed 25 characters)
    reference = order_id + '!' + self.transaction_id(30 - len(order_id) - 1, string.digits + string.ascii_letters)
#14

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

Manque plus que quelque tests, voir si le order_id ressort bien dans la requête si ce qui sort n'est pas trop long.

#15

Mis à jour par Serghei Mihai il y a environ 8 ans

  • Fichier 0001-pass-order-id-to-all-backends-9941.patch ajouté

Avec test pour Ogone en plus

#16

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

  • Fichier 0001-pass-order-id-to-all-backends-9941.patch supprimé
#17

Mis à jour par Serghei Mihai il y a environ 8 ans

  • Statut changé de En cours à Résolu (à déployer)

Validé avec Benjamin en privé. J'ai poussé

commit 8cd625e4651ededa92d888c31d64fafa578f2a9e
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Mon Feb 8 18:40:45 2016 +0100

    pass order id to all backends (#9941)

#18

Mis à jour par Victor Claudet il y a environ 8 ans

Feature très importante pour Fondettes qui me relance aujourd'hui.
On peut envisager une mise en recette rapidement ?

#19

Mis à jour par Frédéric Péters il y a environ 8 ans

Comme noté sur la liste j'ai fait la mise à jour de la recette avec eopayment et combo, ce patch inclus.

(comme vu dans #10029 et #10030 on ne peut pas passer ça en prod)

#20

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

  • Version cible mis à 1.5
#21

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF