簡體   English   中英

如何使用 Stripe 在后端處理付款?

[英]How to process payment on the backend side using Stripe?

我是 Stripe 和一般付款的新手。 我在互聯網上找到了一些帶有示例和指南的文章,例如。 這個 我注意到創建付款的算法如下所示:

  1. 客戶端應用程序從服務器獲取可發布的 Stripe 密鑰
  2. 服務器應用程序創建結帳 session,客戶端應用程序使用檢索到的可發布密鑰獲取結帳 session id
  3. 客戶端應用程序重定向到結帳
  4. 用戶完成付款並被重定向回客戶端應用程序

如果我錯了,請糾正我。 一般來說,我不明白一件事 - 服務器應用程序如何知道付款是否成功完成? 我是否應該首先將流程從條帶結帳重定向到后端,處理結果,然后從后端再次調用前端? 或者我應該以某種方式使用結帳 session 來檢查它是否已完成? 我應該使用某種 cron 來處理待處理的結帳會話嗎? 提前感謝您的幫助。 問候

基本上,您布置的內容是可行的。 當客戶端被引導回您的服務器時,您可以檢查 Session 狀態,但您需要通過 webhook 或您提到的 cron 作業至少以另一種方式檢查此狀態。

我是否應該首先將流程從條帶結帳重定向到后端,處理結果,然后從后端再次調用前端?

這個有可能。 Stripe allows you to add the {CHECKOUT_SESSION_ID} template parameter to your Checkout's success URL, when the user is redirected after their checkout, that template will be replaced with the actual Checkout Session ID which you can use to retrieve the Session and its status.

話雖如此,客戶有可能進行付款,但在導航回您的頁面之前切斷了他們的連接。 因此,如果您依賴該重定向,則會向客戶收取費用,但您永遠不會知道要完成他們的訂單。 這會導致客戶不滿意,因此 Stripe 通常建議在您的服務器上設置一個 webhook 端點[2],以便他們可以向您發送checkout.session.completed事件,以通知您客戶已完成他們的 Checkout Session。 這樣,即使客戶從未進入您的成功頁面,您也會知道要完成他們的訂單。

[1] https://stripe.com/docs/payments/checkout/custom-success-page#modify-success-url

[2] https://stripe.com/docs/payments/checkout/fulfill-orders

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM