簡體   English   中英

stripe / paypal客戶在前端下單時一般后端流程應該是怎樣的

[英]What should the general backend process be when a customer places an order on the front end when working with stripe / paypal

我目前正在使用 Next.js 構建一個電子商務網站,並利用 Stripe 和 Paypal 的反應庫進行結帳。 我想知道我應該如何處理將訂單信息發布到我的數據庫中。 我目前有一個用於 Stripe 的 webhook 端點設置,但我意識到我無法在 webhook 中收到任何訂單詳細信息。

我想到的一種方法是將所有訂單信息發布到我的訂單表,即使它尚未得到確認,並且還存儲 paypal / 條帶 ID。 一旦我收到網絡鈎子,我就可以將訂單標記為已確認。 通過這種方法,我意識到任何人都可以通過 API 路由向數據庫發布訂單,但它永遠不會得到確認,因為不會觸發任何 webhook。 這種方法是最優的還是有更好的方法將訂單發布到數據庫?

我的 stripe 支付設置完全按照本指南所示: https://stripe.com/docs/payments/quickstart一旦用戶點擊結帳頁面,就會在后端創建支付意向,客戶端密碼是發送到前端。 然后我有一個專門用於成功付款的 webhook 設置,我在其中驗證請求來自條帶。

對於 PayPal 結賬,正常處理不需要 webhook。 使用 v2/checkout/orders API 並在您的服務器上創建兩條路由(url 路徑),一條用於“創建訂單”,另一條用於“獲取訂單”。 您可以將(最近棄用的)@paypal/checkout-server-sdk 用於路由 API 對 PayPal 的調用,或者您自己的 HTTPS 實現,首先獲取訪問令牌然后進行調用。 這兩條路線應該返回/輸出 JSON 數據(沒有 HTML 或文本)。 在第二條路線中,當捕獲 API 成功時,您應該驗證金額是否正確並將其生成的付款詳細信息存儲在您的數據庫中(特別是purchase_units[0].payments.captures[0].id ,即 PayPal 交易 ID)並在將返回 JSON 轉發給前端調用者之前立即執行任何必要的業務邏輯(例如預訂產品或發送電子郵件)。 如果出現錯誤,請轉發 JSON 詳細信息,因為前端必須處理此類情況。

將這 2 條路線與此前端批准流程配對: https://developer.paypal.com/demo/checkout/#/pattern/server (如果您需要從客戶端向服務器發送任何其他數據,例如項目數組或選定的選項,請將body參數添加到提取中,其值為 JSON 字符串或 object。您的服務器可以驗證信息是在對其進行任何操作之前更正。)


如果需要,您可以使用 @paypal/paypal-js 加載前端 JS,或者只是一個普通的腳本標簽

暫無
暫無

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

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