Development #9793
Possibilité de passer des paramètres supplémentaires lors de l'envoi d'un paiement au module bancaire
0%
Description
Pour Payzen en particulier.
possibilité d'ajouter des paramètres lors de l'appel webservice vers le paiement
on actuellement une url d'appel du type : [portail-citoyen_url]api/lingo/add-basket-item?amount=[form_var_amount]&NameId=[form_user_name_identifier_0]
Il faut au moins pouvoir passer le numéro de facture quand la facture est saisie dans un formulaire en entrée
Fichiers
Demandes liées
Historique
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
- Echéance mis à 10 février 2016
- Assigné à mis à Serghei Mihai (congés, retour 15/05)
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
- Statut changé de Nouveau à En cours
J'ai modifié le workflow de paiement d'une facture afin qu'il transmette la valeur du champ "numéro de facture" dans le parametre display_name
à lingo.
Il reste à modifier lingo afin qu'il passe l'attribut subject
d'un item dans le bon parametre au backend de paiement.
Dans le cas de payzen il faut passer l'argument vads_order_id
(https://payzen.io/doc/fr/form-payment/standard-payment/index.html#vads-order-id.html)
Mis à jour par Frédéric Péters il y a environ 8 ans
Tu pourras compléter https://dev.entrouvert.org/projects/publik/wiki/Paiement pour garder une référence à jour de l'utilisation ?
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
- Fichier 0001-systempayv2-pass-order-id-to-backend-9793.patch 0001-systempayv2-pass-order-id-to-backend-9793.patch ajouté
- Patch proposed changé de Non à Oui
C'est fait.
Afin de pouvoir transmettre le numéro de la facture à Payzen je propose de rajouter le champ orderid
dans request
.
Il est présent et pris en compte dans le backend ogone et ignoré par les autres.
Ensuite du côté de lingo je verrais le passage du subject
d'un item dans payment.request
. Genre: payment.request(..., orderid=item.subject)
Mis à jour par Frédéric Péters il y a environ 8 ans
Ensuite du côté de lingo je verrais le passage du subject d'un item dans payment.request. Genre: payment.request(..., orderid=item.subject)
Attention le paiement peut contenir plusieurs éléments.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
"Il est présent et pris en compte dans le backend ogone et ignoré par les autres." À un moment il faudra arrêter de plâtrer autour de eopayment et corriger ce qui peut y manquer et ne pas le considérer comme une dépendance externe, c'est un projet Entr'ouvert.
Donc si on utilise order_id le support doit se trouver dans tous les backends, autant que faire se peut.
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
- Lié à Development #9941: possibilité de passer l'ordre d'achat(numéro de facture) à tous les backends de paiement ajouté
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
- Fichier 0001-pass-order-id-to-backend-payment-9793.patch 0001-pass-order-id-to-backend-payment-9793.patch ajouté
Proposition de patch pour transmettre l'identifiant/numéro du dernier item au backend de paiement.
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
- Fichier panier.png panier.png ajouté
- Fichier payzen.png payzen.png ajouté
Sur l'exemple de Fondettes le numéro de la facture remonte bien dans payzen(visible dans la ligne "Référence commande")
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
Je ne comprends pas bien l'idée, on peut avoir plein d'item distant ou pas, venant avec une régie ou pas et dans tous les cas on garde soit uniquement le dernier item du POST soit le premier item du panier (et sa régie) et on passe ça à l'API du paiement. Tout ça je suppose dans le secret espoir qu'il n'y en aura qu'un :)
Je dirai qu'on ne devrait passer l'item que si on est certain qu'il n'y en a qu'un sinon il faut passer l'identifiant de l'objet transaction seulement.(qui peut se trouver créer en début de vue c'est pas gênant, histoire d'avoir un identifiant, et vu le temps passé sur ce code je pense qu'on pourrait traiter # XXX: check all items are going to the same regie
au passage).
Et ça c'est un peu violent, un petit message serait plus sympa.
if total_amount < regie.payment_min_amount: return HttpResponseForbidden()
Mis à jour par Victor Claudet il y a environ 8 ans
Ce qui intéresse la collectivité, la régie plus exactement, c'est de pointer la facturation. Ce qui est important pour le régisseur c'est moins l'identifiant de transaction que le numéro de la ou des factures qui ont été payées. Y a peut-être un frain technique au niveau de la banque (no se) mais idéalement il faut pouvoir passer une référence ou une liste de références de factures pour qu'elles apparaissent dans le BO de la banque. Dans le cas du pré-achat (donc pas de numéro de facture fourni dans le formulaire ou par le webservice) la liste des demandes liées (nom formulaire + id demande ?).
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
Benjamin Dauvergne a écrit :
Je ne comprends pas bien l'idée, on peut avoir plein d'item distant ou pas, venant avec une régie ou pas et dans tous les cas on garde soit uniquement le dernier item du POST soit le premier item du panier (et sa régie) et on passe ça à l'API du paiement. Tout ça je suppose dans le secret espoir qu'il n'y en aura qu'un :)
C'est bien ça l'idée. On garde le dernier item du post(d'une regie distante ou locale).
Je dirai qu'on ne devrait passer l'item que si on est certain qu'il n'y en a qu'un sinon il faut passer l'identifiant de l'objet transaction seulement.(qui peut se trouver créer en début de vue c'est pas gênant, histoire d'avoir un identifiant, et vu le temps passé sur ce code je pense qu'on pourrait traiter
# XXX: check all items are going to the same regie
au passage).
Je suis d'accord avec toi, mais cela ne reglera pas le problème du pointage des paiements par le regisseur. J'ai fait un ticket #10031 pour pouvoir limiter le paiement d'un seul item à la fois par régie.
Ça pourrait être une solution.
Et ça c'est un peu violent, un petit message serait plus sympa.
J'ai créé #10079
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
Victor Claudet a écrit :
Ce qui est important pour le régisseur c'est moins l'identifiant de transaction que le numéro de la ou des factures qui ont été payées. Y a peut-être un frain technique au niveau de la banque (no se) mais idéalement il faut pouvoir passer une référence ou une liste de références de factures pour qu'elles apparaissent dans le BO de la banque. Dans le cas du pré-achat (donc pas de numéro de facture fourni dans le formulaire ou par le webservice) la liste des demandes liées (nom formulaire + id demande ?).
Le champ permettant de stocker l'ordre de paiement est limité au niveau des systèmes de paiement, genre 40 caractères alphanumériques maximum. Donc ce n'est pas évident de passer une liste d'items(préachats ou factures) payés.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
Oui c'est impossible de passer une liste soit on interdit de payer plusieurs factures, c'est ma préférence, soit on ne passe pas les numéros de facture ou alors dans le cas restreint où il n'y a qu'une seule facture.
Idéalement le pointage doit se faire par rapport à un CSV qu'on génère nous, avec numéro de transaction du backoffice de paiement + liste des factures payés, il faut voir pour chaque backoffice de banque si on peut y voir un numéro de transaction autre que le numéro de la facture qu'on passe dans order_id. Ce travaille de fond sur les backoffice (voir ce qu'on peut y voir) doit ensuite être rapporté dans eopayment dans le fichier README.
Mis à jour par Thomas Noël il y a environ 8 ans
Benjamin Dauvergne a écrit :
Oui c'est impossible de passer une liste soit on interdit de payer plusieurs factures, c'est ma préférence
+1 aussi pour interdire de payer plusieurs factures, c'est en fait très compliqué à faire correctement. Avec une seule facture dans la transaction, le numéro apparaitra clairement dans le relevé bancaire reçu par le comptable, ainsi que dans le relevé de l'usager ; c'est bien mieux pour tout le monde àmha.
Mis à jour par Frédéric Péters il y a presque 8 ans
- Statut changé de En cours à Rejeté
On ne fera pas ça du tout comme ça. (→ liste).