2014-06-25 61 views
0

在傳遞給付款處理器之前,流程表單字段的最佳方式是什麼? 例如,假設我有一個隱藏價格字段的表單,這是一個將傳遞給PayPal的值,在這種情況下,用戶可以使用螢火蟲輕鬆更改該值並將任何值傳遞給paypal。 我通常使用PHP將數據庫中的值傳遞給PayPal,但我只是急於想知道還有哪些其他方法可以解決這個問題。使用JavaScript保護表格

Youssef

+1

你總是要承擔,從服務器端,該客戶端不能被信任。 – admdrew

+0

您檢查價格paypal傳回給您 –

+0

貝寶應該給你選擇創建一個幾乎固定價格的庫存項目,你可以參考和通過,以代替實際價格。然後用戶不能修改成本。您所描述的表單聽起來就像是「捐贈」API,他們可以選擇數量。而且,正如其他人所提到的那樣,當您收到回覆以確認他們正在付款時,請檢查已處理的付款金額。 –

回答

0

從不信任客戶端輸入。您可以使用Javascript或簡單的HTML或任何其他的東西,重點是,有足夠的知識(和決心),用戶可以並且始終能夠更改客戶端上的任何內容併發布。

我總是從服務器端傳遞這樣的輸入。

現在,一種方法是在表單中存儲一個「校驗和」隱藏字段,該字段存儲發送給您的服務器並進行驗證的金額值哈希值(以及一個祕密「密鑰」)。或者,只需在表單發佈後驗證服務器上的各個字段,並進一步將用戶重定向到PayPal(以及POST參數)即可。或者,另一種方式(相當費時,但防彈和驗證交易有效性的「行業標準」)是查看在交易完成後PayPal向您的服務器報告什麼(即交易金額通過PayPal Instant Payment Notifications獲得),然後在您的服務器上處理響應。

此外,具體到你的問題(貝寶付款標準按鈕),這裏是來自PayPal一些偉大的忠告: https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/encryptedwebpayments/

+1

你的「或者,另一種方式」是eccomerce –

+0

世界上唯一的*正確的方式。哈哈,很好地說@dagon。 –

+0

同意Dagon。絕對保持使用服務器端!現在感謝Akshay Sharma處理PayPal的迴應。 – Youssef