簡體   English   中英

PayPal REST API訂單工作流程:付款 - >銷售 - > Webhook?

[英]PayPal REST API order workflow: Payment -> Sale -> Webhook?

我正在嘗試將PayPal REST API集成到我的Symfony 2 Web應用程序中,但我發現很難理解完整的工作流程到底是什么樣的:

PayPal文檔描述了接受付款的以下步驟。 可以使用PayPal Playground來模擬這些步驟:

  1. 獲取訪問令牌
  2. 通過查詢API 創建 Payment對象
  3. 將用戶重定向到Payment響應中收到的approval url
  4. 用戶在PayPal頁面上批准付款后,使用Payment對象中定義的success-link將其重定向回我的頁面。 使用收到的信息執行付款。
  5. 付款已完成,狀態approved

從文檔: 付款完成后,它被稱為銷售 然后,您可以查找銷售並退款。

到現在為止還挺好。 但是:在這個工作流程中,Webhooks在哪里使用/解雇? 我在PayPal開發人員儀表板中定義了一個通配符Webhook(接受所有可能的事件)。

我的觀察是,我的系統接收網絡掛接事件1-2分鍾(!)用戶被重定向到成功鏈接, 並執行付款后(步驟4) 之后

除了執行付款和接收Webhook之間的這個長時間延遲之外,這個工作流程意味着我只接收處理成功鏈接的Webhook。 這意味着,處理成功鏈接絕對是完成付款所必需的。 它是否正確?

我需要使用Webhooks嗎?

我已經在幾天前問過這個問題了,nifr的答案是非常合理的:人們不能相信用戶遵循任何重定向URL,但應該只依賴於Webhook事件。

然而,這與我之前描述的觀察結果相沖突,因為如果不處理重定向URL,我將永遠不會收到Webhook ...

因此,處理PAYMENT.SALE.COMPLETED webhook事件沒有多大意義,因為這應該在處理重定向URL時完成。 正確?

但是,要處理待處理付款的更新,只能通過收聽這些事件來處理退款或撤銷付款等。

所以答案是:只使用Webhooks獲取之前付款的更新。 正確?

所以,主要問題是:

  1. 接受付款的5個步驟沒有說明使用Webhooks。 這似乎沒有多大意義,因為沒有Webhooks會錯過更新事件等等? 那么,沒有Webhooks真的可以實現完整的支付工作流程嗎?
  2. 如果是, 在這種情況下如何處理更新(退款,待處理等)?
  3. 如果不是, 那么完成訂單的正確策略/時間是什么, 因為完全接收和處理webhook需要相當長的時間?

我仍然是PayPal世界的新手,但幾天前我在一個在線商店中集成了PayPal Plus REST API,根據我的理解,我可以看出工作流程如下:

  1. 創建付款
  2. 重定向到PayPal
  3. 付款人可以使用PayPal賬戶支付使用銀行直接付款或沒有PayPal賬戶的信用卡付款
  4. 在PayPal端完成此過程后,PayPal會將用戶重定向回您的成功URL。
  5. 到目前為止,用戶仍然沒有收費(你沒有錢)。 在您(在您的成功URL中)執行$payment->execute($paymentExecution,$api);的那一刻$payment->execute($paymentExecution,$api); ,您要求Paypal向用戶收取金額。 但在此之后,你沒有錢。 Paypal首先處理收費並稍后通過WebhookEvents通知您。

當用戶按每筆直接付款或信用卡等付款時,Webhook通知(帶有令人討厭的延遲)尤其重要。處理此類付款需要幾秒鍾/分鍾。

redirectUrl絕對是收費/執行付款所必需的。 這里執行成功,只是告訴用戶,他完成了他的Job,你可以在這里保存/捕獲PaymentID / Transaction id,以便以后使用/更新通過WebhookEvent Listener。

所以我建議你只有在通過WebhookEvent Listener接收到通知后才更新你的數據庫(付款已完成),而不是成功的Red​​irectUrl。

暫無
暫無

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

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