2016-09-11 94 views
0

我的網站上有一個貝寶html按鈕,應該返回到我的網站的數據。我的理解是有一個返回url(帶有返回方法)和一個可以做到這一點的通知url。通知網址需要一個IPN監聽器,看起來好像是進行驗證檢查,這很好。我沒有看到任何返回網址的驗證檢查,但似乎我想根據大多數情況下驗證檢查的結果更新返回網址(例如,支付是否成功)。而且,我需要知道PayPal實際上要求返回url來更新db,否則這似乎會通過返回url打開csrf攻擊的大門。貝寶按鈕返回網址的使用情況

我是PayPal按鈕的新手,但我沒有看到任何有關使用通知網址和返回網址的信息。那麼,爲了解決這些問題,我應該怎麼做呢?

回答

1

爲了緩解這樣的困惑:

  1. return_url只是名字要返回時完成貝寶的過程中你的web應用的頁面。還有一個cancel_url,如果您想爲用戶取消單獨的頁面,可以使用它。回到return_url並不意味着你有錢。這確實意味着客戶已經完成了PayPal交易,但可能會出現資金延遲,最終可能會發生支付失敗,因此請不要對您的雞隻進行計數。

  2. notify_url是Web應用程序中POST處理程序的URL。不是一個頁面。 POST處理程序應該執行您提到的驗證步驟,然後它應該檢查txn_type和其他變量以查看正在通知的內容。這可能是付款,訂閱,終止,付款失敗,逆轉,取消逆轉......僅這些交易類型中的一些意味着您實際上已從客戶那裏收到款項。

我需要知道的PayPal實際請求返回URL來更新數據庫

沒有絲毫。這裏不採取任何商業行爲。

  • return_url頁面,你應該感謝他們的業務,並告訴他們的行動/購買/訂閱等,他們要求將定稿一旦Paypal付款過程完成。

  • notify_url處理程序應該處理所有與接收付款,取得逆轉,退訂等return_urlcancel_url網頁不應該做任何的是相關聯的業務操作。沒有錢=>沒有行動。

+0

好的。我想我仍然想要理解請求的順序,因爲看起來PayPal可能會異步或同步地將它們踢到兩頁,具體取決於它們的設計,這可能會影響我的設計選擇。 – Slayer0248

+0

返回到'return_url'或'cancel_url'是同步的:它發生在用戶按下按鈕時。調用notify_url是異步的,可能會在幾分鐘或幾小時或幾天後發生,甚至可能永遠不會發生。正如我所說的,您的設計選擇只需通過'notify_url'採取實際的業務行動。 – EJP

+0

關於此主題的最後一個問題。我有我自己的內部ID,我必須在通知中鏈接到txnIds。我可以看到,一直工作的唯一方法是如果我在自定義字段中傳遞某些內容。那麼在那一點上,相同的自定義值會在未來的所有請求中發送給此事務的通知URL?它也似乎是如果用戶通過關閉選項卡付款之前離開PayPal網址,則不會有交易,但我已經堅持實質上是活動會話ID。那麼如何知道這個會話ID是否在沒有超時的情況下處於非活動狀態 – Slayer0248