我们的应用程序通过POST从我们的支付处理器接收webhooks。当我构建这个函数时,我最初将它用于GET以进行测试,因此我可以使用URL来测试参数。一切都运行正常但现在我需要测试使用POST请求发送到我们的URL的假购买。所以我更新了代码,但现在没有新的webhook保存在我们的数据库中。
views.py
@require_POST
def webhook(request):
template_name = 'payment/index.html'
hook = Webhook()
user = User.objects.get(id=request.POST.get('clientAccnum', ''))
hook.user = user
hook.clientSubacc = request.POST.get('clientSubacc', '')
hook.eventType = request.POST.get('eventType')
hook.eventGroupType = request.POST.get('eventGroupType', '')
hook.subscriptionId = request.POST.get('subscriptionId', '')
hook.timestamp = request.POST.get('timestamp', '')
hook.timestamplocal = timezone.now()
hook.save()
hook.user.profile.account_paid = hook.eventType == 'RenewalSuccess'
hook.user.profile.save()
return render(request, template_name)
models.py
class Webhook(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=False)
clientSubacc = models.CharField(max_length=120, blank=True, null=True)
eventType = models.CharField(max_length=120, blank=True, null=True)
eventGroupType = models.CharField(max_length=120, blank=True, null=True)
subscriptionId = models.CharField(max_length=120, blank=True, null=True)
timestamp = models.DateTimeField(blank=True, null=True)
timestamplocal = models.DateTimeField(blank=True, null=True)
我现在从我们的支付处理器发出POST请求,他们的支持告诉我webhooks正在被解雇但数据库中没有任何新功能。这让我相信views.py代码是错误的。
无论如何我可以测试一下吗?