簡體   English   中英

使用 PayPal REST API,我如何取消付款?

[英]Using the PayPal REST API, how can I cancel a payment?

使用 PayPal REST API,我似乎無法弄清楚在客戶單擊“取消訂單並返回網站”鏈接后如何取消付款。 也許在生產模式下,PayPal 會自動取消這些付款,但在沙盒模式下,它們似乎仍處於“已創建”狀態。

這一觀察使我相信我需要在返回網站的“cancel_url”頁面時以編程方式取消每筆付款。 但是,我似乎無法在 PayPal REST API 文檔中找到取消功能。

https://developer.paypal.com/docs/api/

就其價值而言,我使用的是 Ruby API。

上周我聯系了 PayPal 的技術支持,他們是這樣說的:

如果買家在沒有取消結賬的情況下完成了 PayPal 結賬頁面上的工作,那么他們將被重定向回您的網站。 如果您希望他們在那時取消,您可以構建返回 URL 以進行最終確認(顯示最終要計費的總數)。 所以此時買家在您的網站上,但尚未執行付款。 如果買家決定繼續,那么您運行執行命令,使用成功的付款詳細信息更新您的數據庫。 如果此時買家決定取消,您不運行執行命令,並清除付款 ID 和買家的付款人 ID。 您無需將請求傳遞給 PayPal 即可取消買家在 PayPal 上的操作。 這與使用 Express Checkout 使用 Classic API 完成的過程類型相同。 一旦買家被發送到 PayPal,他們會選擇資金來源和送貨地址並將其發送回您的網站,如果他們想取消交易,您的網站不會向 PayPal 發送任何 API 調用來取消或取消 EC 代幣. 它只是不用於收取付款。

當被問及如何處理未執行付款以及它們是否會在一定時間后自動取消未執行付款時:

是的,我建議從您的數據庫中刪除付款 ID,這樣就不會出現意外付款。 默認情況下,如果付款未在 3 小時內執行,我們的系統將使 PayPal 付款人的付款批准過期。

PayPal 已允許在此處發布他們的答案。

我實際上直接與來自 PayPal 的人交談過。 答案是:

一旦用戶授權銷售,就必須執行銷售。 超過那個點就不能取消了。 因此,如果用戶返回您的返回 URL,您只需對您的付款運行“執行”命令。

這可能並不直接適用於您的情況。 我認為“取消”的唯一方法是先“執行”,然后申請全額“退款”。 否則,永遠不要執行(我也認為這很奇怪,因為這看起來可能存在安全問題。也就是說,可能發生的主要問題是“執行”付款,您的公司將收到您可以手動付款的款項必要時退款...)

我使用了 paypal api v2,並且有取消訂單 api。

https://developer.paypal.com/docs/api/orders/v1/?mark=cancel%20order#orders_cancel

我認為您需要取消付款授權:

https://developer.paypal.com/docs/api/#void-an-authorization

暫無
暫無

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

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