通过强大的客户身份验证实现条纹

时间:2019-09-29 05:41:46

标签: php stripe-payments strong-customer-authentication

我正在尝试创建一个带有条纹的word-press插件,以支持强大的客户身份验证。带状收费对我来说很好。我已引用此链接https://www.codexworld.com/stripe-payment-gateway-integration-php/进行付款。条带中的sca实现的任何此类参考链接吗?预先感谢

1 个答案:

答案 0 :(得分:0)

我刚刚将公司从旧的Charges API迁移到了SCA。不好看我是一名后端工程师,所以我只打算解决完成这项工作所需的后端组件。如果您也想要完全自定义的前端,则需要阅读Stripe文档,并围绕表单提交->增强的验证->收集更多数据->提交更多数据进行更多弹跳。这个工作流程太复杂了,值得庆幸的是,我的公司选择了Stripe签出解决方案。

我在一家SaaS公司工作,我们为预订房间收取费用,因此我们有不可替代的时间依赖的“库存”物品。由于我们代表客户出售预订位,因此我们也拥有Stripe连接的帐户。基本上,所有您梦all以求的梦cases。由于结帐时间为24小时,我们必须分配然后收集-如果您开始该过程然后去吃午餐,则不能保证在处理付款后,您想要的房间在您的时间段内仍然免费。

我的过程如下:

后端调用Stripe,并使用Session::create()启动签出会话。在此设置payment_method_typesline_items以及返回URL。同时发送payment_intent_data。我的看起来像这样:

            'payment_intent_data' => [
                'transfer_data' => [
                    'destination' => 'acct_ number of linked account',
                ],
                'capture_method' => 'manual',
                'description' => 'description of item',
                'statement_descriptor' => 'description of item, max 22 chars',
            ],

很显然,如果您没有关联的帐户,请省略transfer_data,但绝对要同时包含两个描述符。如果您确定自己的库存水平(例如,数字商品),可以将capture_method更改为automatic

从Stripe返回时,我将会话密钥(sk_)发送给前端,然后前端将其移交给Stripe的付款表格。如果您想要完全自定义的前端,这就是您需要做很多工作的重点。祝你好运。

结帐会话成功后,我在checkout.session.completed上有一个webhook事件来调用我的API,并处理从前端返回的URL。我在数据库中保留了有关付款状态的额外数据,因此我只处理一次退货。

任何一种返回都会使我返回到会话-该ID位于前端链接中,可以从webhook回调中的$session = $event->data->object检索会话。然后,您可以使用$intent = PaymentIntent::retrieve($session->payment_intent);

从会话中获取意图。

这时,我处理了PaymentIntent中的各种状态代码;

requires_payment_method
requires_confirmation
requires_action
canceled
requires_capture
succeeded

我真正感兴趣的是requires_capture,然后在其中检查资源是否仍然可用。如果是,我$intent->capture()最终确定付款并为用户创建预订。您可以根据业务流程的需要处理它们。

如果您要处理关联的帐户,则还需要加载与PaymentIntent费用对象关联的转帐项目,然后加载destination_payment字段中引用的费用(您可以使用{{1}加载费用}键)。然后设置py_description字段并保存费用,以便您的关联客户知道付款的目的。