使用 Stripe 的 Checkout 功能后如何获取资金?

223*_*eca 2 stripe-payments

我正在使用 Stripe 的结帐功能。我的产品需要几分钟才能生成,因此我想保留资金,仅在客户的产品准备就绪后才向他们收费。是否可以在不重构的情况下使用此功能来做到这一点?

Ale*_*orb 5

\n

这段代码对我有用:

\n
<?php\n$amount = 50;\n\n$stripe = new \\Stripe\\StripeClient(env(\'STRIPE_SECRET\'));\n\n$session = $stripe->checkout->sessions->create([\n    \'payment_method_types\' => [\'card\'],\n    \'success_url\' => \'reservation.success\'.\'?id={CHECKOUT_SESSION_ID}\',\n    \'cancel_url\' => \'reservation.cancel\',\n    \'payment_intent_data\' => [\n        \'capture_method\' => \'manual\',\n    ],\n\n    \'line_items\' => [[\n        \'price_data\' => [\n            \'currency\' => "eur",\n            \'product_data\'=> [\n                \'name\'=> "My awesome product",\n            ],\n            \'unit_amount\'=> $amount * 100,\n        ],\n        \'quantity\' => 1\n    ]],\n    \'mode\' => \'payment\',\n]);\n\nreturn redirect()->to($session->url);\n
Run Code Online (Sandbox Code Playgroud)\n

这是在 Laravel 中完成的。您可能需要对其进行一些调整以满足您的需求。

\n

当然你需要

\n
    \n
  • 适应$amount你想要在\xe2\x82\xac中收集的数量。
  • \n
  • 改变currency如果需要,
  • \n
  • 设置路线success_url
  • \n
  • 设置路线cancel_url
  • \n
\n

调用此代码后,用户将被重定向到会话 URL 进行付款,然后将其保留在他的卡上。

\n

然后您可以稍后通过以下方式获取付款:

\n
<?php\n$stripe = new \\Stripe\\StripeClient(env(\'STRIPE_SECRET\'));\n\n$session_id = \'THE_CHECKOUT_SESSION_ID\';\n$payment_intent = $stripe->checkout->sessions->retrieve($session_id)-payment_intent;\n\n$intent = \\Stripe\\PaymentIntent::retrieve($payment_intent);\n// Capture all\n$intent->capture();\n// Alternative: Capture only a part of the reserved amount\n// $intent->capture([\'amount_to_capture\' => 750]);\n
Run Code Online (Sandbox Code Playgroud)\n

也可以看看https://stripe.com/docs/ payments/capture- later

\n