【问题标题】:Use data in webhook to populate html form input使用 webhook 中的数据填充 html 表单输入
【发布时间】:2021-06-04 21:44:40
【问题描述】:

我有通过 webhook 传入的数据,我希望它发送到 http://localhost:8000/webhooks/stripe,并且我希望它在结帐后重定向时填写我的 success.html 页面上的表格。

我想获取 customer_email 来填写电子邮件输入 -

@csrf_exempt
def stripe_webhook(request):
    payload = request.body
    sig_header = request.META['HTTP_STRIPE_SIGNATURE']
    event = None

    try:
        event = stripe.Webhook.construct_event(
            payload, sig_header, settings.STRIPE_WEBHOOK_SECRET
        )
    except ValueError as e:
    # Invalid payload
        return HttpResponse(status=400)
    except stripe.error.SignatureVerificationError as e:
    # Invalid signature
        return HttpResponse(status=400)


    if event['type'] == 'checkout.session.completed':
        session = event['data']['object']
        customer_email = session["customer_details"]["email"]

        document.getElementById("email").value=customer_email


    return HttpResponse(status=200)

forms.py 看起来像这样 -

class UserRegisterForm(UserCreationForm):
    email = forms.EmailField(widget= forms.EmailInput(attrs={'id':'email'}))

    class Meta:
        model = User
        fields = ['email', 'password1', 'password2']

还是我必须使用 forms.py 中的函数从 webhook 中提取数据?

【问题讨论】:

    标签: python django django-forms stripe-payments webhooks


    【解决方案1】:

    Web 钩子和成功页面是 2 个不同的端点。您需要将该电子邮件保存在某处(例如数据库中的模型),然后在呈现表单时获取它。

    【讨论】:

    • 如果我将电子邮件保存在模型中,我将如何确保能够从表单中的数据库中获取正确的电子邮件?
    • 您需要找到一个 id/key/token 并将其保存到电子邮件旁边的数据库中。您也可以在成功页面中访问的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2020-11-20
    • 2018-04-24
    • 1970-01-01
    相关资源
    最近更新 更多