我希望有人可以帮助我了解Stripe应该如何使用Cakephp 3。
我有一个带有Stripe付款字段的表单和我的蛋糕应用程序的几个字段。从条纹文档中,这似乎是一种可接受的设置方式。
HTML是相当标准的,但请注意每个输入的敏感程度 数据号,CVC,过期和邮政编码 - 省略名称 属性。通过省略名称,这些字段中的用户提供的数据 在提交表单时,不会将其传递给您的服务器。每 element还包含一个data-stripe属性,稍后将对此进行讨论。
我现在正在使用cakephp 3,它似乎不允许我从表单助手生成的HTML中删除属性。我只能制作这个名字'财产是空白的。我用条纹支持查询了这一点,他们有点不置可否。它们通常非常好,但在这种情况下,答案似乎比抱歉更安全。'
我的主要问题是:如果你没有使用Stripe字段的表单助手,那真的很重要吗?我可以在蛋糕文档中找到的主要好处是CSRF组件将在这些字段上起作用。我在整个应用程序中使用CSRF组件,但由于Stripe字段甚至没有发送到服务器,因此CSRF组件无关紧要。不是吗?
以下是Cakephp手册的摘录:
CsrfComponent的工作原理是将cookie设置为用户的浏览器。 使用Cake \ View \ Helper \ FormHelper创建表单时,隐藏 添加包含CSRF令牌的字段。在此期间 Controller.startup事件,如果请求是POST,PUT,DELETE,PATCH 请求组件将比较请求数据&饼干价值。如果 要么丢失,要么两个值不匹配,组件将抛出 aCake \网络\异常\ InvalidCsrfTokenException。
我仍然可以将表单助手用于提交到数据库的少数字段,并且只使用HTML添加条带字段?
这有意义吗?
Stripe支持确实建议有两个单独的表单,一个用于蛋糕数据,一个用于Stripe数据,但是因为他们的文档说你可以将Stripe字段添加到提交给服务器的表单,看起来有点奇怪。
我真的很感激这方面的一些意见,因为看起来Stripe自己也不确定如何构建一个cakephp支付表格!
答案 0 :(得分:0)
是原始HTML似乎是要走的路。
这就是我所做的。
使用表单助手来开始和结束表单(这意味着表单被篡改,CSRF将适用于非条带字段)
使用HTML在Cake表单中添加了条带字段(我没有测试HTML字段以查看表单篡改是否适用于它们。我稍后会对其进行测试并回发)
使用Form帮助程序解锁stripeToken字段,以便可以将其添加到表单中,而不会使表单篡改黑名单请求。
一旦我设置了所有这些,我在我的控制器中使用echo debug($ _ POST)来查看表单提交给服务器的内容,并且显示的唯一Stripe字段是stripeToken。
所以在我看来,这是有效的。