forked from CGM_Public/pretix_original
Log failed payments
This commit is contained in:
@@ -198,6 +198,7 @@ def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs):
|
|||||||
'pretix.event.order.payment.confirmed': _('Payment {local_id} has been confirmed.'),
|
'pretix.event.order.payment.confirmed': _('Payment {local_id} has been confirmed.'),
|
||||||
'pretix.event.order.payment.canceled': _('Payment {local_id} has been canceled.'),
|
'pretix.event.order.payment.canceled': _('Payment {local_id} has been canceled.'),
|
||||||
'pretix.event.order.payment.started': _('Payment {local_id} has been started.'),
|
'pretix.event.order.payment.started': _('Payment {local_id} has been started.'),
|
||||||
|
'pretix.event.order.payment.failed': _('Payment {local_id} has failed.'),
|
||||||
'pretix.event.order.refund.created': _('Refund {local_id} has been created.'),
|
'pretix.event.order.refund.created': _('Refund {local_id} has been created.'),
|
||||||
'pretix.event.order.refund.created.externally': _('Refund {local_id} has been created by an external entity.'),
|
'pretix.event.order.refund.created.externally': _('Refund {local_id} has been created by an external entity.'),
|
||||||
'pretix.event.order.refund.done': _('Refund {local_id} has been completed.'),
|
'pretix.event.order.refund.done': _('Refund {local_id} has been completed.'),
|
||||||
|
|||||||
@@ -245,6 +245,10 @@ class Paypal(BasePaymentProvider):
|
|||||||
if payment.state != 'approved':
|
if payment.state != 'approved':
|
||||||
payment_obj.state = OrderPayment.PAYMENT_STATE_FAILED
|
payment_obj.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
payment_obj.save()
|
payment_obj.save()
|
||||||
|
payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': payment.local_id,
|
||||||
|
'provider': payment.provider,
|
||||||
|
})
|
||||||
logger.error('Invalid state: %s' % str(payment))
|
logger.error('Invalid state: %s' % str(payment))
|
||||||
raise PaymentException(_('We were unable to process your payment. See below for details on how to '
|
raise PaymentException(_('We were unable to process your payment. See below for details on how to '
|
||||||
'proceed.'))
|
'proceed.'))
|
||||||
|
|||||||
@@ -326,6 +326,11 @@ class StripeMethod(BasePaymentProvider):
|
|||||||
}
|
}
|
||||||
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
payment.save()
|
payment.save()
|
||||||
|
payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': payment.local_id,
|
||||||
|
'provider': payment.provider,
|
||||||
|
'message': err['message']
|
||||||
|
})
|
||||||
raise PaymentException(_('Stripe reported an error with your card: %s') % err['message'])
|
raise PaymentException(_('Stripe reported an error with your card: %s') % err['message'])
|
||||||
|
|
||||||
except stripe.error.StripeError as e:
|
except stripe.error.StripeError as e:
|
||||||
@@ -341,6 +346,11 @@ class StripeMethod(BasePaymentProvider):
|
|||||||
}
|
}
|
||||||
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
payment.save()
|
payment.save()
|
||||||
|
payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': payment.local_id,
|
||||||
|
'provider': payment.provider,
|
||||||
|
'message': err['message']
|
||||||
|
})
|
||||||
raise PaymentException(_('We had trouble communicating with Stripe. Please try again and get in touch '
|
raise PaymentException(_('We had trouble communicating with Stripe. Please try again and get in touch '
|
||||||
'with us if this problem persists.'))
|
'with us if this problem persists.'))
|
||||||
else:
|
else:
|
||||||
@@ -370,6 +380,11 @@ class StripeMethod(BasePaymentProvider):
|
|||||||
payment.info = str(charge)
|
payment.info = str(charge)
|
||||||
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
payment.save()
|
payment.save()
|
||||||
|
payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': payment.local_id,
|
||||||
|
'provider': payment.provider,
|
||||||
|
'info': str(charge)
|
||||||
|
})
|
||||||
raise PaymentException(_('Stripe reported an error: %s') % charge.failure_message)
|
raise PaymentException(_('Stripe reported an error: %s') % charge.failure_message)
|
||||||
|
|
||||||
def payment_pending_render(self, request, payment) -> str:
|
def payment_pending_render(self, request, payment) -> str:
|
||||||
@@ -461,6 +476,11 @@ class StripeMethod(BasePaymentProvider):
|
|||||||
}
|
}
|
||||||
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
payment.save()
|
payment.save()
|
||||||
|
payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': payment.local_id,
|
||||||
|
'provider': payment.provider,
|
||||||
|
'message': err['message']
|
||||||
|
})
|
||||||
raise PaymentException(_('We had trouble communicating with Stripe. Please try again and get in touch '
|
raise PaymentException(_('We had trouble communicating with Stripe. Please try again and get in touch '
|
||||||
'with us if this problem persists.'))
|
'with us if this problem persists.'))
|
||||||
|
|
||||||
@@ -630,6 +650,11 @@ class StripeCC(StripeMethod):
|
|||||||
}
|
}
|
||||||
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
payment.save()
|
payment.save()
|
||||||
|
payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': payment.local_id,
|
||||||
|
'provider': payment.provider,
|
||||||
|
'message': err['message']
|
||||||
|
})
|
||||||
raise PaymentException(_('We had trouble communicating with Stripe. Please try again and get in touch '
|
raise PaymentException(_('We had trouble communicating with Stripe. Please try again and get in touch '
|
||||||
'with us if this problem persists.'))
|
'with us if this problem persists.'))
|
||||||
|
|
||||||
|
|||||||
@@ -270,6 +270,11 @@ def charge_webhook(event, event_json, charge_id, rso):
|
|||||||
payment.info = str(charge)
|
payment.info = str(charge)
|
||||||
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
payment.save()
|
payment.save()
|
||||||
|
payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': payment.local_id,
|
||||||
|
'provider': payment.provider,
|
||||||
|
'info': str(charge)
|
||||||
|
})
|
||||||
|
|
||||||
return HttpResponse(status=200)
|
return HttpResponse(status=200)
|
||||||
|
|
||||||
@@ -335,6 +340,11 @@ def source_webhook(event, event_json, source_id, rso):
|
|||||||
elif src.status == 'failed':
|
elif src.status == 'failed':
|
||||||
payment.info = str(src)
|
payment.info = str(src)
|
||||||
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
|
payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': payment.local_id,
|
||||||
|
'provider': payment.provider,
|
||||||
|
'info': str(src)
|
||||||
|
})
|
||||||
payment.save()
|
payment.save()
|
||||||
|
|
||||||
return HttpResponse(status=200)
|
return HttpResponse(status=200)
|
||||||
@@ -423,6 +433,11 @@ class ReturnView(StripeOrderView, View):
|
|||||||
self.payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
self.payment.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||||
self.payment.info = str(src)
|
self.payment.info = str(src)
|
||||||
self.payment.save()
|
self.payment.save()
|
||||||
|
self.payment.order.log_action('pretix.event.order.payment.failed', {
|
||||||
|
'local_id': self.payment.local_id,
|
||||||
|
'provider': self.payment.provider,
|
||||||
|
'info': str(src)
|
||||||
|
})
|
||||||
messages.error(self.request, _('We had trouble authorizing your card payment. Please try again and '
|
messages.error(self.request, _('We had trouble authorizing your card payment. Please try again and '
|
||||||
'get in touch with us if this problem persists.'))
|
'get in touch with us if this problem persists.'))
|
||||||
return self._redirect_to_order()
|
return self._redirect_to_order()
|
||||||
|
|||||||
Reference in New Issue
Block a user