Projet

Général

Profil

Bug #14728

crash sur un retour d'erreur de payzen

Ajouté par Frédéric Péters il y a plus de 7 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
23 janvier 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Internal Server Error: /lingo/return/1/
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 69, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/combo/apps/lingo/views.py", line 458, in dispatch
    return super(ReturnView, self).dispatch(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 87, in dispatch
    return handler(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/combo/apps/lingo/views.py", line 464, in post
    return self.handle_return(request, request.body, **kwargs)
  File "/usr/lib/python2.7/dist-packages/combo/apps/lingo/views.py", line 482, in handle_return
    transaction = Transaction.objects.get(order_id=payment_response.order_id)
  File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 92, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 357, in get
    self.model._meta.object_name)
DoesNotExist: Transaction matching query does not exist.

Avec comme réponse rapportée par eopayment :

<PaymentResponse {'bank_data': {'vads_validation_mode': '0', 'vads_threeds_error_code': '', 'vads_auth_number': '', 'vads_ctx_mode': 'PRODUCTION', 'vads_threeds_cavv': '', 'vads_result': '30: erreur de format', 'vads_language': 'fr', 'vads_threeds_xid': '', 'vads_version': 'V2', 'vads_auth_mode': 'MARK', 'vads_trans_id': '', 'vads_extra_result': 'erreur dans le champ vads_amount', 'vads_card_country': '', 'vads_currency': '', 'vads_site_id': '57406901', 'vads_payment_certificate': '', 'vads_threeds_enrolled': '', 'vads_trans_date': '', 'vads_warranty_result': '', 'vads_auth_result': ': Code inconnu', 'vads_threeds
 _exit_status': '', 'vads_card_brand': '', 'vads_contract_used': '', 'vads_payment_src': '', 'vads_amount': '', '__bank_id': '', 'vads_threeds_status': '', 'vads_action_mode': 'INTERACTIVE', 'vads_threeds_eci': '', 'vads_threeds_sign_valid': '', 'vads_effective_amount': '', 'vads_threeds_cavvAlgorithm': '', 'signature': 'e0d8ddb7bdb2794f66116f1be7fdaf617b7b2d1a', 'vads_capture_delay': '0', 'vads_card_number': ''}, 'order_id': '_', 'bank_status': ': Code inconnu - 30: erreur de format - erreur dans le champ vads_amount', 'signed': True, 'result': 99, 'test': False, 'return_content': None, 'transaction_id': ''}>

→ order_id: _.

En cas d'erreur, on peut se dire qu'on n'aura pas systématiquement un order_id correct et prendre soin de ne pas planter.

Il faudrait aussi investiguer pour voir ce qui a bien pu être envoyé dans vads_amount et qui a été considéré invalide.


Demandes liées

Lié à EOPayment - Development #47538: payzen/systempayv2: ne pas renvoyer de response.orderid si vads_trans_date et vads_trans_id sont videsFermé10 octobre 2020

Actions

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 7 ans

Il faudrait aussi investiguer pour voir ce qui a bien pu être envoyé dans vads_amount et qui a été considéré invalide.

Je viens d'essayer ça, sans grand succès. Et la personne après coup a réussi à payer correctement.

#2

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Lié à Development #47538: payzen/systempayv2: ne pas renvoyer de response.orderid si vads_trans_date et vads_trans_id sont vides ajouté
#3

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Nouveau à Fermé

J'ai ouvert un ticket spécifique sur eopayment pour payzen, coté lingo ça ne trace plus si aucune Transaction n'est trouvable, et à mon avis l'erreur était humaine ici (amount ne peut pas être vide ou mal formé).

Formats disponibles : Atom PDF