Projet

Général

Profil

Bug #13728

ogone: erreur lors de la vérification de la signature de retour

Ajouté par Serghei Mihai il y a plus de 7 ans. Mis à jour il y a environ 7 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Version cible:
-
Début:
24 octobre 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Trace arrivée suite à la saisie des accents dans le nom du titulaire de la carte sur la page de paiement:

Internal Server Error: /lingo/return/2/
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 457, 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 460, in get
    return self.handle_return(request, request.environ['QUERY_STRING'], **kwargs)
  File "/usr/lib/python2.7/dist-packages/combo/apps/lingo/views.py", line 469, in handle_return
    payment_response = payment.response(backend_response)
  File "/usr/lib/python2.7/dist-packages/eopayment/__init__.py", line 143, in response
    return self.backend.response(query_string, **kwargs)
  File "/usr/lib/python2.7/dist-packages/eopayment/ogone.py", line 542, in response
    expected_signature = self.sha_sign_out(params)
  File "/usr/lib/python2.7/dist-packages/eopayment/ogone.py", line 472, in sha_sign_out
    return self.sha_sign(self.hash_algorithm, self.sha_out, params, SHA_OUT_PARAMS)
  File "/usr/lib/python2.7/dist-packages/eopayment/ogone.py", line 461, in sha_sign
    values = [u'%s=%s' % (a, b) for a, b in values if a in keep]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 1: ordinal not in range(128)

Request repr(): 
<WSGIRequest
path:/lingo/return/2/,
GET:<QueryDict: {u'orderID': [u'lRXK4Rl1N2yIR3R5z7Kc'], u'STATUS': [u'9'], u'IP': [u'80.12.92.47'], u'PAYID': [u'3011229363'], u'CN': [u'M\xefhai Serghe\xef'], u'NCERROR': [u'0'], u'TRXDATE': [u'10/24/16'], u'CARDNO': [u'XXXXXXXXXXXX9999'], u'BRAND': [u'MasterCard'], u'ACCEPTANCE': [u'test123'], u'currency': [u'EUR'], u'amount': [u'7.5'], u'SHASIGN': [u'CE39087A8059EEB177F37CCC67B8567CDB658F92'], u'ED': [u'0318'], u'PM': [u'CreditCard']}>,


Fichiers

Révisions associées

Révision 11ba668f (diff)
Ajouté par Serghei Mihai il y a plus de 7 ans

ogone: fix response parameters encoding (#13728)

Historique

#1

Mis à jour par Serghei Mihai il y a plus de 7 ans

#2

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

Ack.

#3

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

On pourrait pas aussi avoir un test moins fabriqué, partant de que combo fait ?

 backend_response = 'orderID=Mo1beROq3FNe8KT9ZD3m&currency=EUR&amount=7%2E5&PM=CreditCard&ACCEPTANCE=test123&STATUS=9&CARDNO=XXXXXXXXXXXX9999&ED=0118&CN=Miha%EF+Serghe%EF&TRXDATE=10%2F24%2F16&PAYID=3011228911&NCERROR=0&BRAND=MasterCard&IP=80%2E12%2E92%2E47&SHASIGN=9D774B1CEC8C393195DDEE92F32F2589F40EF10A'
 payment_response = payment.response(backend_response)

(en adaptant l avaleur de la signature).

#4

Mis à jour par Serghei Mihai il y a plus de 7 ans

Je me rend compte que le CN envoyé, qui est à l'origine du problème n'est pas encodé en UTF-8.

#5

Mis à jour par Serghei Mihai il y a plus de 7 ans

Patch à jour avec un test supplémentaire prenant la query string encodée en iso-8859-1

#6

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

Ack, mais fais un test en live si tu peux aussi.

#7

Mis à jour par Serghei Mihai il y a plus de 7 ans

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

Testé sur la recette de Tournai (merci Fred) et ça fonctionne.

commit 11ba668f42333cc3f595be6a54910992d8f42111
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Tue Oct 25 10:27:07 2016 +0200

    ogone: fix response parameters encoding (#13728)

#8

Mis à jour par Serghei Mihai il y a environ 7 ans

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

Formats disponibles : Atom PDF