diff --git a/eopayment/ogone.py b/eopayment/ogone.py index 484df8c..af0600d 100644 --- a/eopayment/ogone.py +++ b/eopayment/ogone.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import hashlib import string +import six from six.moves.urllib import parse as urlparse from decimal import Decimal, ROUND_HALF_UP @@ -499,7 +500,7 @@ class Payment(PaymentCommon): # arrondi comptable francais amount = amount.quantize(Decimal('1.'), rounding=ROUND_HALF_UP) params = { - 'AMOUNT': unicode(amount), + 'AMOUNT': force_text(amount), 'ORDERID': reference, 'PSPID': self.pspid, 'LANGUAGE': language, @@ -533,7 +534,10 @@ class Payment(PaymentCommon): return reference, FORM, form def response(self, query_string, **kwargs): - params = urlparse.parse_qs(query_string, True) + if six.PY3: + params = urlparse.parse_qs(query_string, True, encoding='iso-8859-1') + else: + params = urlparse.parse_qs(query_string, True) params = dict((key.upper(), params[key][0]) for key in params) if not set(params) >= set(['ORDERID', 'PAYID', 'STATUS', 'NCERROR']): raise ResponseError()