Stripe: Expose webhook listener on event domain

This commit is contained in:
Raphael Michel
2016-08-29 22:46:45 +02:00
parent c30ff5e657
commit e5f76d92a2
3 changed files with 9 additions and 3 deletions

View File

@@ -11,7 +11,7 @@ from django.utils.translation import ugettext_lazy as _
from pretix.base.models import Quota
from pretix.base.payment import BasePaymentProvider
from pretix.base.services.orders import mark_order_paid, mark_order_refunded
from pretix.helpers.urls import build_absolute_uri
from pretix.multidomain.urlreverse import build_absolute_uri
logger = logging.getLogger('pretix.plugins.stripe')
@@ -39,7 +39,7 @@ class Stripe(BasePaymentProvider):
return "<div class='alert alert-info'>%s<br /><code>%s</code></div>" % (
_('Please configure a <a href="https://dashboard.stripe.com/account/webhooks">Stripe Webhook</a> to '
'the following endpoint in order to automatically cancel orders when a charges are refunded externally.'),
build_absolute_uri('plugins:stripe:webhook')
build_absolute_uri(self.event, 'plugins:stripe:webhook')
)
def payment_is_valid_session(self, request):

View File

@@ -7,3 +7,9 @@ urlpatterns = [
url(r'^webhook/$', webhook, name='webhook'),
])),
]
event_patterns = [
url(r'^stripe/', include([
url(r'^webhook/$', webhook, name='webhook'),
])),
]

View File

@@ -15,7 +15,7 @@ logger = logging.getLogger('pretix.plugins.stripe')
@csrf_exempt
@require_POST
def webhook(request):
def webhook(request, *args, **kwargs):
event_json = json.loads(request.body.decode('utf-8'))
event_type = event_json['type']
if event_type != 'charge.refunded':