Development #10033
Mieux gérer les erreurs sur l'URL de callback
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
19 février 2016
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Description
Internal Server Error: /lingo/callback/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 236, in dispatch return super(CallbackView, 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 232, in post return self.handle_callback(request, request.body, **kwargs) File "/usr/lib/python2.7/dist-packages/combo/apps/lingo/views.py", line 201, in handle_callback 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.
Il faut rattraper le DoesNotExist et aussi vérifier que order_id est bien ce qu'on veut (une chaîne ascii) avant de faire la requête.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Dupliqué par Bug #10034: gérer les cas ou la transaction n'existe pas ajouté
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
- Fichier 0001-lingo-raise-404-if-transaction-does-not-exist-10033.patch 0001-lingo-raise-404-if-transaction-does-not-exist-10033.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
Ack. Et pour order_id vu le code de PaymentResponse c'est toujours une chaîne donc ça devrait aller, par contre le assert juste au dessus c'est pas un peu violent ?
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 8 ans
- Statut changé de En cours à Résolu (à déployer)
Pas eu encore des cas ou le assert declenche l'exception sur des annulations de paiement.
commit edb19948fafe524f19fafb9e49fc61007acb2014 Author: Serghei Mihai <smihai@entrouvert.com> Date: Fri Feb 19 11:13:37 2016 +0100 lingo: raise 404 if transaction does not exist (#10033)
lingo: raise 404 if transaction does not exist (#10033)