Private
Public Access
1
0

webhook tested locally

This commit is contained in:
Sander Roosendaal
2021-02-03 08:29:13 +01:00
parent ce2d16af4d
commit 423e8c920c
2 changed files with 28 additions and 24 deletions

View File

@@ -14,6 +14,7 @@ queuelow = django_rq.get_queue('low')
queuehigh = django_rq.get_queue('low')
from braintree.exceptions.invalid_signature_error import InvalidSignatureError
import rowers.fakturoid as fakturoid
from rowers.utils import myqueue
from rowers.tasks import (
@@ -55,27 +56,29 @@ from rowers.models import Rower,PaidPlan, CoachingGroup
from rowers.utils import ProcessorCustomerError
def process_webhook(notification):
print(notification.kind)
if notification.kind == 'subscription_charged_successfully':
subscription_id = notification.subscription.id
print(subscription_id)
rs = Rower.objects.filter(subscription_id=subscription_id)
if rs.count() == 0:
return 0
else:
r = rs[0]
print(r)
fakturoid_contact_id = fakturoid.get_contacts(r)
if not fakturoid_contact_id:
fakturoid_contact_id = fakturoid.create_contact(rower)
transactions = result.subscription.transactions
if transactions:
amount = transactions[0].amount
fakturoid.create_invoice(r,amount)
return 1
return send_invoice(notification.subscription)
return 0
def send_invoice(subscription):
subscription_id = subscription.id
rs = Rower.objects.filter(subscription_id=subscription_id)
if rs.count() == 0:
return 0
else:
r = rs[0]
fakturoid_contact_id = fakturoid.get_contacts(r)
if not fakturoid_contact_id:
fakturoid_contact_id = fakturoid.create_contact(r)
transactions = subscription.transactions
if transactions:
amount = transactions[0].amount
id = fakturoid.create_invoice(r,amount,subscription_id,dosend=True)
return id
return 0
def webhook(request):
try:
webhook_notification = gateway.webhook_notification.parse(
@@ -84,8 +87,6 @@ def webhook(request):
except InvalidSignatureError:
return 4
print(webhook_notification.kind)
result = process_webhook(webhook_notification)