PayPal: Improve logging for failures

This commit is contained in:
Raphael Michel
2023-12-21 22:45:51 +01:00
parent 4cb271868b
commit 12804ff1a0

View File

@@ -446,7 +446,7 @@ class PaypalMethod(BasePaymentProvider):
response = self.client.execute(req) response = self.client.execute(req)
except IOError as e: except IOError as e:
messages.warning(request, _('We had trouble communicating with PayPal')) messages.warning(request, _('We had trouble communicating with PayPal'))
logger.exception('PayPal OrdersGetRequest: {}'.format(str(e))) logger.exception('PayPal OrdersGetRequest({}): {}'.format(paypal_order_id, str(e)))
return False return False
else: else:
if response.result.status == 'APPROVED': if response.result.status == 'APPROVED':
@@ -602,15 +602,17 @@ class PaypalMethod(BasePaymentProvider):
if not self.settings.isu_merchant_id: if not self.settings.isu_merchant_id:
raise PaymentException('Payment method misconfigured') raise PaymentException('Payment method misconfigured')
self.init_api() self.init_api()
paypal_oid = request.session.get('payment_paypal_oid')
try: try:
req = OrdersGetRequest(request.session.get('payment_paypal_oid')) req = OrdersGetRequest(paypal_oid)
response = self.client.execute(req) response = self.client.execute(req)
except IOError as e: except IOError as e:
logger.exception('PayPal OrdersGetRequest: {}'.format(str(e))) logger.exception('PayPal OrdersGetRequest({}): {}'.format(paypal_oid, str(e)))
payment.fail(info={ payment.fail(info={
"error": { "error": {
"name": "IOError", "name": "IOError",
"message": str(e), "message": str(e),
"order_id": paypal_oid,
} }
}) })
raise PaymentException(_('We had trouble communicating with PayPal')) raise PaymentException(_('We had trouble communicating with PayPal'))
@@ -676,9 +678,10 @@ class PaypalMethod(BasePaymentProvider):
"error": { "error": {
"name": "IOError", "name": "IOError",
"message": str(e), "message": str(e),
} },
"order_id": paypal_oid,
}) })
logger.exception('PayPal OrdersPatchRequest: {}'.format(str(e))) logger.exception('PayPal OrdersPatchRequest({}): {}'.format(paypal_oid, str(e)))
return return
try: try:
@@ -704,11 +707,11 @@ class PaypalMethod(BasePaymentProvider):
pass pass
payment.fail(info={**pp_captured_order.dict(), "error": error}, log_data=error) payment.fail(info={**pp_captured_order.dict(), "error": error}, log_data=error)
logger.exception('PayPal OrdersCaptureRequest: {}'.format(str(e))) logger.exception('PayPal OrdersCaptureRequest({}): {}'.format(pp_captured_order.id, str(e)))
raise PaymentException(text) raise PaymentException(text)
except IOError as e: except IOError as e:
payment.fail(info={**pp_captured_order.dict(), "error": {"message": str(e)}}, log_data={"error": str(e)}) payment.fail(info={**pp_captured_order.dict(), "error": {"message": str(e)}}, log_data={"error": str(e)})
logger.exception('PayPal OrdersCaptureRequest: {}'.format(str(e))) logger.exception('PayPal OrdersCaptureRequest({}): {}'.format(pp_captured_order.id, str(e)))
raise PaymentException( raise PaymentException(
_('We were unable to process your payment. See below for details on how to proceed.') _('We were unable to process your payment. See below for details on how to proceed.')
) )
@@ -930,7 +933,7 @@ class PaypalMethod(BasePaymentProvider):
response = self.client.execute(req) response = self.client.execute(req)
except IOError as e: except IOError as e:
messages.warning(request, _('We had trouble communicating with PayPal')) messages.warning(request, _('We had trouble communicating with PayPal'))
logger.exception('PayPal OrdersGetRequest: {}'.format(str(e))) logger.exception('PayPal OrdersGetRequest({}): {}'.format(paypal_order_id, str(e)))
return False return False
else: else:
if response.result.status == 'APPROVED': if response.result.status == 'APPROVED':