Projet

Général

Profil

Development #9793

Possibilité de passer des paramètres supplémentaires lors de l'envoi d'un paiement au module bancaire

Ajouté par Victor Claudet il y a plus de 8 ans. Mis à jour il y a presque 8 ans.

Statut:
Rejeté
Priorité:
Haut
Version cible:
-
Début:
28 janvier 2016
Echéance:
10 février 2016
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

0001-systempayv2-pass-order-id-to-backend-9793.patch (1,35 ko) 0001-systempayv2-pass-order-id-to-backend-9793.patch Serghei Mihai (congés, retour 15/05), 09 février 2016 10:38
0001-pass-order-id-to-backend-payment-9793.patch (1,96 ko) 0001-pass-order-id-to-backend-payment-9793.patch Serghei Mihai (congés, retour 15/05), 18 février 2016 15:49
panier.png (17,1 ko) panier.png Serghei Mihai (congés, retour 15/05), 19 février 2016 09:28
payzen.png (62,9 ko) payzen.png Serghei Mihai (congés, retour 15/05), 19 février 2016 09:28

Demandes liées

Lié à EOPayment - Development #9941: possibilité de passer l'ordre d'achat(numéro de facture) à tous les backends de paiementFermé11 février 2016

Actions

Historique

#1

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)
#2

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)

#3

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 ?

#4

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans

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)

#5

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

Le patch attaché concerne eopayment (???).

#6

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.

#7

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.

#8

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é
#9

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans

Proposition de patch pour transmettre l'identifiant/numéro du dernier item au backend de paiement.

#10

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans

Sur l'exemple de Fondettes le numéro de la facture remonte bien dans payzen(visible dans la ligne "Référence commande")

#11

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()

#12

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 ?).

#13

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

#14

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.

#15

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.

#16

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.

#17

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).

Formats disponibles : Atom PDF