【发布时间】:2020-01-08 09:30:53
【问题描述】:
我想在我的网站上通过 Stripe 销售产品。当用户购买产品时,我希望他们使用电子邮件和密码填写表格以创建帐户。然后我会将这些数据发送到我自己的 API,API 会将他们的帐户插入到我的数据库中。如何将其与 Stripe 集成?
此外,我需要我的 API 来确定该用户确实购买了产品,因为只有购买了该产品的人才能拥有帐户。我该如何验证?
谢谢。
编辑:另一个选择是我允许任何人注册,我可以这样做,然后在他们购买产品时输入他们的电子邮件。然后我向我的服务器发送一个请求,如果他们确实购买了该电子邮件地址,则将布尔值 activated 更新为 True。我认为这是一种更好的方法,但我仍然不知道如何让他们在购买产品时提供电子邮件,或者在向我的 API 发送更新布尔值的请求时如何验证用户是否购买了产品。
EDIT2: 拥有 API 似乎是个坏主意。相反,我将在用户提交付款后简单地运行代码来生成用户。似乎我可以使用此 API https://stripe.com/docs/payments/checkout/one-time 获取他们的付款信息和电子邮件,但我如何询问他们的密码并确保已填写此密码以进行付款?
EDIT3:我现在认为最好的方法是创建自己的结帐表单,该表单将询问他们的付款详细信息以及他们的帐户密码。然后,我将通过烧瓶将此信息发送到我的 API,这将向 Stripe 发送 API 请求以处理付款。如果他们的 API 响应说支付成功,那么我执行代码来添加用户。如果没有,我告诉用户它失败了。我应该使用什么 Stripe API 来执行此操作?
【问题讨论】:
-
您使用什么语言或框架?您可以让他们输入他们的电子邮件,创建付款,如果付款成功,创建帐户。给他们发电子邮件,让他们用密码更新他们的帐户。这可以以一种形式完成/以一种形式付款或先付款形式。
-
@uno Python/Flask。我不确定这是个好主意,如何生成安全的一次性链接?
-
@uno 创建帐户时如何生成盐和随机密码,然后我散列盐 + 密码并将其存储在数据库中。然后,我使用该散列/加盐密码的散列 + 用户创建日期作为密钥创建一个 JWT。然后当他们点击链接时,我用盐的哈希值 + 新密码更新数据库中的哈希值。这样链接只会工作一次,因为他们的密码已经改变。
-
@uno 虽然我仍然认为我的第三次编辑中的方法更好,但我不知道该怎么做。尽管使用我自己的表格+他们的付款表格可能会更好,如答案的 cmets 中所述。
标签: stripe-payments