lingo: log payment events (fixes #11306)
This commit is contained in:
parent
489775e265
commit
488e411a16
|
@ -33,6 +33,7 @@ from django.conf import settings
|
|||
from django.contrib import messages
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.db.transaction import atomic
|
||||
from django.utils.encoding import smart_text
|
||||
|
||||
import eopayment
|
||||
|
||||
|
@ -239,8 +240,10 @@ class PayView(View):
|
|||
return HttpResponseRedirect(next_url)
|
||||
|
||||
payment = get_eopayment_object(request, regie)
|
||||
(order_id, kind, data) = payment.request(total_amount,
|
||||
email=request.user.email)
|
||||
(order_id, kind, data) = payment.request(total_amount, email=request.user.email)
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.info(u'emitted payment request with id %s', smart_text(order_id), extra={
|
||||
'eopayment_order_id': smart_text(order_id), 'eopayment_data': repr(data)})
|
||||
transaction.order_id = order_id
|
||||
transaction.save()
|
||||
if next_url:
|
||||
|
@ -263,20 +266,39 @@ class CallbackView(View):
|
|||
def handle_callback(self, request, backend_response, **kwargs):
|
||||
regie = Regie.objects.get(id=kwargs.get('regie_pk'))
|
||||
payment = get_eopayment_object(request, regie)
|
||||
logger = logging.getLogger(__name__)
|
||||
try:
|
||||
payment_response = payment.response(backend_response)
|
||||
except eopayment.ResponseError as e:
|
||||
logging.error('failed to process payment response (%r)', e)
|
||||
logger.error(u'failed to process payment response: %s', e,
|
||||
extra={'eopayment_raw_response': repr(backend_response)})
|
||||
return HttpResponseBadRequest()
|
||||
|
||||
extra_info = {
|
||||
'eopayment_order_id': smart_text(payment_response.order_id),
|
||||
'eopayment_response': repr(payment_response),
|
||||
}
|
||||
for k, v in payment_response.bank_data.iteritems():
|
||||
extra_info['eopayment_bank_data_' + k] = smart_text(v)
|
||||
if not payment_response.result == eopayment.CANCELLED:
|
||||
# cancellation are not signed...
|
||||
logger.warning(u'received unsigned payment response with id %s',
|
||||
smart_text(payment_response.order_id), extra=extra_info)
|
||||
assert payment_response.signed is True
|
||||
|
||||
try:
|
||||
transaction = Transaction.objects.get(order_id=payment_response.order_id)
|
||||
except Transaction.DoesNotExist:
|
||||
logger.warning(u'received unknown payment response with id %s',
|
||||
smart_text(payment_response.order_id), extra=extra_info)
|
||||
raise Http404
|
||||
else:
|
||||
extra_info['lingo_transaction_id'] = transaction.pk
|
||||
if transaction.user:
|
||||
# let hobo logger filter handle the extraction of user's infos
|
||||
extra_info['user'] = transaction.user
|
||||
logger.warning(u'received unknown payment response with id %s',
|
||||
smart_text(payment_response.order_id), extra=extra_info)
|
||||
|
||||
transaction.status = payment_response.result
|
||||
transaction.bank_transaction_id = payment_response.transaction_id
|
||||
transaction.bank_data = payment_response.bank_data
|
||||
|
|
Loading…
Reference in New Issue