PayPal2: improve error-logging in isu_return

This commit is contained in:
Richard Schreiber
2022-06-20 14:27:41 +02:00
committed by GitHub
parent ec2da30c74
commit 550cb28a0e

View File

@@ -197,7 +197,10 @@ def isu_return(request, *args, **kwargs):
getparams = ['merchantId', 'merchantIdInPayPal', 'permissionsGranted', 'accountStatus', 'consentStatus', 'productIntentID', 'isEmailConfirmed'] getparams = ['merchantId', 'merchantIdInPayPal', 'permissionsGranted', 'accountStatus', 'consentStatus', 'productIntentID', 'isEmailConfirmed']
sessionparams = ['payment_paypal_isu_event', 'payment_paypal_isu_tracking_id'] sessionparams = ['payment_paypal_isu_event', 'payment_paypal_isu_tracking_id']
if not any(k in request.GET for k in getparams) or not any(k in request.session for k in sessionparams): if not any(k in request.GET for k in getparams) or not any(k in request.session for k in sessionparams):
messages.error(request, _('An error occurred during connecting with PayPal, please try again.')) messages.error(request, _('An error occurred returning from PayPal: request parameters missing. Please try again.'))
missing_getparams = set(getparams) - set(request.GET)
missing_sessionparams = set(sessionparams) - set(request.session)
logger.exception('PayPal2 - Missing params in GET {} and/or Session {}'.format(missing_getparams, missing_sessionparams))
return redirect(reverse('control:index')) return redirect(reverse('control:index'))
event = get_object_or_404(Event, pk=request.session['payment_paypal_isu_event']) event = get_object_or_404(Event, pk=request.session['payment_paypal_isu_event'])
@@ -222,17 +225,21 @@ def isu_return(request, *args, **kwargs):
response = prov.client.execute(req) response = prov.client.execute(req)
except IOError as e: except IOError as e:
messages.error(request, _('An error occurred during connecting with PayPal, please try again.')) messages.error(request, _('An error occurred during connecting with PayPal, please try again.'))
logger.exception('PayPal PartnersMerchantIntegrationsGetRequest: {}'.format(str(e))) logger.exception('PayPal2 - PartnersMerchantIntegrationsGetRequest: {}'.format(str(e)))
else: else:
params = ['merchant_id', 'tracking_id', 'payments_receivable', 'primary_email_confirmed'] params = ['merchant_id', 'tracking_id', 'payments_receivable', 'primary_email_confirmed']
if not any(k in response.result for k in params): if not any(k in response.result for k in params):
if 'message' in response.result: if 'message' in response.result:
messages.error(request, response.result.message) messages.error(request, response.result.message)
logger.exception('PayPal2 - Error-message in response: {}'.format(response.result.message))
else: else:
messages.error(request, _('An error occurred during connecting with PayPal, please try again.')) messages.error(request, _('An error occurred returning from PayPal: result parameters missing. Please try again.'))
missing_params = set(params) - set(response.result)
logger.exception('PayPal2 - Missing params {} in response.result'.format(missing_params))
else: else:
if response.result.tracking_id != request.session['payment_paypal_isu_tracking_id']: if response.result.tracking_id != request.session['payment_paypal_isu_tracking_id']:
messages.error(request, _('An error occurred during connecting with PayPal, please try again.')) messages.error(request, _('An error occurred returning from PayPal: session parameter not matching. Please try again.'))
logger.exception('PayPal2 - tracking_id not matching session.payment_paypal_isu_tracking_id')
else: else:
if request.GET.get("isEmailConfirmed") == "false": # Yes - literal! if request.GET.get("isEmailConfirmed") == "false": # Yes - literal!
messages.warning( messages.warning(