2017-10-29 77 views
0

我正在使用貝寶通過我的網站接受付款。我正在查看智能付款按鈕選項。如果付款成功,我需要更新我的網站數據庫中的內容。我如何確定付款是否成功?我無法看到任何API文檔。驗證付款是成功還是失敗

我還需要保留帶有PHP會話ID的用戶上下文。我如何將它傳遞到貝寶網站並確保它與成功/失敗指示符一起返回?

回答

1

使用Paypal IPN接收付款通知。設置服務器端點以響應IPN請求並更新您的數據庫等...

要保持狀態,您需要在名稱爲custom的智能付款按鈕中包含一個隱藏的輸入字段,並提供您選擇的值(會話ID)。

設置一個IPN端點,例如:/ checkout/ipn,接收貝寶通知。用$ _POST ['custom']捕獲會話ID;

+0

感謝Scriptonomy。 IPN可能是一個有用的選擇。我仍然不清楚如何通過付款發送客戶ID,然後從IPN中提取相同的客戶ID。同樣,我不確定發佈到付款頁面的隱藏輸入字段將如何與付款結果一起返回。 (我認爲PayPal文檔的這個方面並不是很好)。我可能會放棄使用Braintree API的簡單PayPal按鈕方法。它返回付款Nonce與客戶端JavaScript,然後我可以驗證從PayPal服務器與我的服務器端代碼一次付款成功。 –

+0

就失去用戶會話而言,我可以看到其他用戶也遇到了麻煩。由於PayPal按鈕將您帶到一個全新的URL,因此很容易丟失會話上下文。這就是爲什麼我認爲客戶端js和服務器端代碼(通過Braintree API)組合最好。否則,你不得不求助於像這個解決方案的cookie https://stackoverflow.com/questions/31069675/paypal-payment-destroys-session-on-return?rq=1 –