我正在尝试创建一个带有条纹的word-press插件,以支持强大的客户身份验证。带状收费对我来说很好。我已引用此链接https://www.codexworld.com/stripe-payment-gateway-integration-php/进行付款。条带中的sca实现的任何此类参考链接吗?预先感谢
答案 0 :(得分:0)
我刚刚将公司从旧的Charges API迁移到了SCA。不好看我是一名后端工程师,所以我只打算解决完成这项工作所需的后端组件。如果您也想要完全自定义的前端,则需要阅读Stripe文档,并围绕表单提交->增强的验证->收集更多数据->提交更多数据进行更多弹跳。这个工作流程太复杂了,值得庆幸的是,我的公司选择了Stripe签出解决方案。
我在一家SaaS公司工作,我们为预订房间收取费用,因此我们有不可替代的时间依赖的“库存”物品。由于我们代表客户出售预订位,因此我们也拥有Stripe连接的帐户。基本上,所有您梦all以求的梦cases。由于结帐时间为24小时,我们必须分配然后收集-如果您开始该过程然后去吃午餐,则不能保证在处理付款后,您想要的房间在您的时间段内仍然免费。>
我的过程如下:
后端调用Stripe,并使用Session::create()
启动签出会话。在此设置payment_method_types
和line_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
字段并保存费用,以便您的关联客户知道付款的目的。