使用Stripe设置付款处理似乎是一项艰巨的任务。尽管条纹文档非常有用,但有时可能会令人困惑。在此演示中,我将向您展示如何在我的一个项目中进行设置。从获得付款进行条纹,并从付款中接收信息以更新您的数据库。
首先,您需要访问Stripe's网站并设置一个帐户。然后使用pip install stripe
安装条纹。在此示例中,我将烧瓶用于后端,并为前端做出反应。该网站是用于购买和销售滑板的电子商务页面。现在,创建一些供产品销售的模型,然后收据运行flask db init
,flask db migrate
和flask db upgrade
来创建数据库。我的模型看起来像:
现在,我们有一个数据库返回您的Stripe仪表板,然后单击开发人员。 API键的标签将显示单击并获取您的测试键。
由于该项目是由GitHub跟踪的,因此我将测试密钥存储为一个环境变量,并在单独的.ENV文件中存储。您可以执行相同的操作,也可以用引号中的密钥替换environ.get('STRIPE_API_TEST_KEY')
。现在,我们的前端不需要做很多事情,因此请弄清楚要使用哪个按钮将用户重定向到Stripe Checkout页面。然后创建一个邮政请求,以创建结帐会话这样的任何路由:
矿山是第23行上的一个。现在,您可以在前端重定向用户,可以在Stripe仪表板上手动创建产品,或者使用以下功能在Stripe和数据库中创建它们。
您可以无视GET方法(第147-149行)。这里发生的事情是,每当用户创建一个新的甲板以销售线条160-170实际上是在您的条纹仪表板中创建产品,并将产品ID和价格ID添加到我们的数据库中,因为我们以后需要它们。
在这里,我们为会话定义了一条路线,并从数据库中获取了产品。现在,我们已经说过产品可以使用价格ID条纹提供的产品来确定将向用户收取的金额。我们还指定了client_reference_id
,因此当我们收回信息时,我们会知道哪个用户进行了购买。您可以在这里从自定义字段到运输地址添加很多东西,但是为了本示例,我们不需要所有额外的字段。现在,您需要设置一个Webhook,以在交易后从条纹中检索数据。我使用了Ngrok,您可以使用您喜欢的任何服务。 Stripe甚至提供您可以使用的CLI,但我更喜欢Ngrok。如果您与Ngrok一起使用,则需要创建一个帐户并下载Ngrok。完成该文件后,将文件解压缩。有时,如果未设置为Windows环境变量,您会遇到问题。将其设置为复制Ngrok应用程序的路径。然后在Windows搜索栏搜索编辑环境变量中。您应该看到这样的东西:
从此处单击环境变量,然后在系统变量下单击路径。然后单击编辑。现在,单击“新的”路径中的新粘贴进行NGROK应用程序。您现在可以关闭窗口并打开终端。如果您实际设置了通往变量的路径,则输入该变量名称,否则将路径粘贴回去并键入HTTP 5000或您计划运行服务器的任何端口。您应该有这样的东西:
转发后复制链接,然后回到条纹仪表板。从“开发人员”选项卡中,您应该找到一个用于Webhooks的选项卡。那里单击添加端点后。然后将链接从终端粘贴到端点URL,然后将/webhook
添加到末端。现在,单击选定事件,然后结帐。现在,切换称为checkout.session.completed
的事件,然后选择“添加端点”。现在单击您刚创建的端点;在签名下,请单击“显示并复制钥匙”。
与我的密钥作为环境变量相同,但是您可以将其粘贴在此处。现在,我们将编写使用Webhook的方法。
这里唯一真正重要的是第67-75行。这是我们检索事件对象并将相关信息添加到收据表中的地方。您可以根据最初创建结帐会话指定的内容,从此获得大量信息。现在,您可以测试它,看看一切如何工作! Stripe为您提供了可以用于交易的测试卡号码,因此您不会卸载试图测试应用程序的银行帐户。请随时在评论中留下任何问题,我一定会回到您身边,并结帐示例中使用的回购here!