forked from CGM_Public/pretix_original
Add missing refund.done webhooks
This commit is contained in:
@@ -1541,19 +1541,24 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet):
|
|||||||
amount=amount,
|
amount=amount,
|
||||||
provider=payment.provider
|
provider=payment.provider
|
||||||
)
|
)
|
||||||
|
payment.order.log_action('pretix.event.order.refund.created', {
|
||||||
|
'local_id': r.local_id,
|
||||||
|
'provider': r.provider,
|
||||||
|
}, user=self.request.user if self.request.user.is_authenticated else None, auth=self.request.auth)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
r.payment_provider.execute_refund(r)
|
r.payment_provider.execute_refund(r)
|
||||||
except PaymentException as e:
|
except PaymentException as e:
|
||||||
r.state = OrderRefund.REFUND_STATE_FAILED
|
r.state = OrderRefund.REFUND_STATE_FAILED
|
||||||
r.save()
|
r.save()
|
||||||
|
payment.order.log_action('pretix.event.order.refund.failed', {
|
||||||
|
'local_id': r.local_id,
|
||||||
|
'provider': r.provider,
|
||||||
|
'error': str(e)
|
||||||
|
})
|
||||||
return Response({'detail': 'External error: {}'.format(str(e))},
|
return Response({'detail': 'External error: {}'.format(str(e))},
|
||||||
status=status.HTTP_400_BAD_REQUEST)
|
status=status.HTTP_400_BAD_REQUEST)
|
||||||
else:
|
else:
|
||||||
payment.order.log_action('pretix.event.order.refund.created', {
|
|
||||||
'local_id': r.local_id,
|
|
||||||
'provider': r.provider,
|
|
||||||
}, user=self.request.user if self.request.user.is_authenticated else None, auth=self.request.auth)
|
|
||||||
if payment.order.pending_sum > 0:
|
if payment.order.pending_sum > 0:
|
||||||
if mark_refunded:
|
if mark_refunded:
|
||||||
mark_order_refunded(payment.order,
|
mark_order_refunded(payment.order,
|
||||||
|
|||||||
@@ -1071,6 +1071,12 @@ class OrderRefundView(OrderView):
|
|||||||
else:
|
else:
|
||||||
any_success = True
|
any_success = True
|
||||||
|
|
||||||
|
if r.state == OrderRefund.REFUND_STATE_DONE:
|
||||||
|
self.order.log_action('pretix.event.order.refund.done', {
|
||||||
|
'local_id': r.local_id,
|
||||||
|
'provider': r.provider,
|
||||||
|
}, user=self.request.user)
|
||||||
|
|
||||||
if any_success:
|
if any_success:
|
||||||
if self.start_form.cleaned_data.get('action') == 'mark_refunded':
|
if self.start_form.cleaned_data.get('action') == 'mark_refunded':
|
||||||
if self.order.cancel_allowed():
|
if self.order.cancel_allowed():
|
||||||
|
|||||||
Reference in New Issue
Block a user