Projet

Général

Profil

Bug #9910

en finir avec la confusion url de retour / url de callback une fois pour toutes

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

Statut:
Fermé
Priorité:
Haut
Assigné à:
-
Version cible:
-
Début:
08 février 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Après une erreur de paiement me voilà redirigé vers …/lingo/callback/1/

Encode u''
InterfaceVersion u'HP_2.0'
Data u'captureDay=0|captureMode=AUTHOR_CAPTURE|currencyCode=978|merchantId=002001000000001|orderChannel=INTERNET|responseCode=75|transactionDateTime=2016-02-08T15:56:50+01:00|transactionReference=986608|keyVersion=1|amount=4000|paymentMeanBrand=MASTERCARD|paymentMeanType=CARD|customerIpAddress=77.109.97.223|orderId=116744c0b50e4cd4b4274e3dcf22cd06|holderAuthentRelegation=N|holderAuthentStatus=|transactionOrigin=INTERNET|paymentPattern=ONE_SHOT'
Seal u'006fb28758ee820c30f7208a0e8db8169d9eeccd0e3550f75678795c56bcf3f9'

Il me semble que c'est plutôt vers la ReturnView que je devrais être envoyé.


Fichiers


Demandes liées

Lié à EOPayment - Development #9998: standardisation des options normal_return_url et automatic_return_urlFermé16 février 2016

Actions

Révisions associées

Révision 46572982 (diff)
Ajouté par Frédéric Péters il y a environ 8 ans

lingo: use new eopayment common options for return/callback URLs (#9910)

Historique

#1

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

Le code de lingo n'est pas bon il passe comme next_url l'URL de la vue de callback au lieu de la vue de retour synchrone:

        return_url = request.build_absolute_uri(¶
                reverse('lingo-callback', kwargs={'regie_pk': regie.id}))¶                                                                                                      
        (order_id, kind, data) = payment.request(total_amount,¶
                email=request.user.email,¶
                next_url=return_url)¶

En fait le problème vient du backend TIPI qui n'a pas d'URL de retour "synchrone" mais uniquement asynchrone et qui est transmise via le paramètre next_url ; en totale contradiction avec les autres backends qui gère next_url sips et systempayv2/payzen. Pour ogone et paybox on ne gère pas next_url de toute façon.

Donc faut homogénéiser, pour moi c'est TIPI qui doit changer, l'URL de retour "callback" de tipi devrait faire partie du paramétrage et pas de l'appel à request(), il faudrait gérer next_url sur paybox et ogone, et le passer pour les n URLs de retour possible (pour paybox on a par exemple PBX_REFUSE, PBX_ACCEPTE, PBX_ANNULE).

#2

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

  • Sujet changé de envoi de l'usager sur l'url de callback après une erreur de paiement sips2 à en finir avec la confusion url de retour / url de callback une fois pour toutes
  • Priorité changé de Normal à Haut

Récapitulons avant d'arranger les choses.

  • lingo dispose de deux URLs, lingo-callback et lingo-return.
  • les backends eopayment attendent l'une et/ou l'autre, parfois on peut leur passer lors de l'appel, parfois c'est dans la config du service.
  • backend par backend :
    • sips2 : lingo-return → normal_return_url; lingo-callback → automatic_return_url
    • sips : lingo-return → normal_return_url, cancel_return_url; lingo-callback → automatic_return_url
    • ogone : lingo-return → ACCEPTURL, BACKURL, CANCELURL, DECLINEURL, EXCEPTIONURL; lingo-callback → à définir dans le backoffice ogone (sous l’onglet « Retour d’information sur la transaction », dans la rubrique « Requête directe http serveur-à-serveur »)
    • paybox : lingo-return → PBX_EFFECTUE, PBX_REFUSE, PBX_ANNULE, PBX_ATTENTE; lingo-callback → PBX_REPONDRE_A (ou dans le backoffice paybox (Ce paramètre est une URL enregistrée dans la base de données Paybox mais elle peut également être gérée dynamiquement comme les 4 URLs précédentes via la variable “PBX_REPONDRE_A”.)
    • payzen et systempayv2 : lingo-return → vads_url_success, vads_url_refused, vads_url_cancel, vads_url_error (ou une seule, vads_url_return); lingo-callback → à paramétrer dans le backoffice (Pour recevoir les notifications, le marchand doit paramétrer les règles de notifications depuis son Back Office (voir chapitre Paramétrer les notifications).)
    • tipi : lingo-return → nulle part; lingo-callback → URLCL (next_url dans eopayment).
    • dummy : lingo-return → next_url; lingo-callback → direct_notification_url
    • (à suivre)
#3

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

Tout le travail est à faire dans eopayment, il faut normaliser le paramétrage des backends, ils doivent tous accepter deux paramètres normal_return_url et automatic_return_url; et pour ogone et payzen il faut mettre dans un texte d'aide expliquant que le paramétrage doit être reporté dans le backoffice, je dirai que le backend pourrait avoir une API get_warning_message() qui en fonction du paramétrage passé dirait 'Veuillez reporter l'URL xyz dans votre <a href="URL du backoffice">backoffice Payzen/Ogone</a>'.

Le fait de passer next_url directement à request() doit devenir obsolète à mon avis je propose que tous les backends l'ignore, sauf TIPI pour rétro-compatibilité à Orléans.

Pour auquotidien/Noyelles-Godault je ferai les modifications (ça utilise next_url actuellement).

#4

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

Oui, une part des modifications sont bien sûr à faire dans eopayment, il ne doit pas y avoir de comportement particulier backend par backend dans lingo, cela doit être clair pour tout le monde.

#5

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

  • Lié à Development #9998: standardisation des options normal_return_url et automatic_return_url ajouté
#6

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

#7

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

(non)

#8

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

Voilà, testé de bout en bout avec sips2. (qui envoie l'usager en POST sur l'adresse de retour).

#9

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

Ack.

#10

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

  • Statut changé de En cours à Résolu (à déployer)
commit 465729829ecc2f1d0d9438fd2ea1739fe3fde473
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Feb 16 19:43:14 2016 +0100

    lingo: use new eopayment common options for return/callback URLs (#9910)
#11

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

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

Formats disponibles : Atom PDF