2011-11-14 36 views
3

我在我的電子商務應用程序上使用標準的PHP paypal表單進行付款。PHP - PayPal API窗體和安全

我注意到,只有螢火蟲的人可以在發送支付請求之前通過「付款」按鈕來更改PayPal表單數據。

所以我想知道,是否有一個「標準」有付款的形式,可以由一個新手「編輯」:/?

我們可以做些什麼來防止這種情況?

回答

1

這不是一個巨大的安全風險,因爲你應該檢查實際上支付了什麼!任何人都可以發佈任何數據。它與你的表格,甚至Firebug沒有多大關係。

您可以將該按鈕信息存儲在貝寶的服務器上,但不能動態生成。當您使用他們的嚮導爲您創建按鈕代碼時,有一個選項。

+0

嗯,我想太多它不是一個很大的安全隱患我的答案,只是要更舒適,你說得對! thx – sbaaaang

+0

爲什麼downvote?我的回答錯誤? – Brad

+0

downvote?我立即投票並檢查了答案:O – sbaaaang

4

我不同意;我認爲這是你應該首先防止的事情。買方應支付的金額不應通過互聯網公開發送。我們可以遠離的時間早已過去。

此外,支票不會阻止交易執行不同的金額。它只會阻止任何交易後的戲劇。
是的,你應該在交易完成之後運行支票,但是即使有人不能理論上操縱amount也應該發生。

有幾種選擇,你可以選擇根據您的要求是什麼最適合你,

  1. 什麼也不做,只實施交易後的檢查(例如用IPN)。
    最簡單。從代碼的角度來看,您的PayPal集成看起來很簡陋,而且您仍然可以獲得所有這些0.01美元的欺詐交易。

  2. 在按鈕生成器中勾選'帶有PayPal的主機按鈕'選項,並使用PayPal的BMUpdateButton API動態更改按鈕的數量。
    爲BMUpdateButton一個例子請求將如下所示:

    USER =你的API的用戶名
    PWD =你的API密碼
    SIGNATURE =你的API簽名
    METHOD = BMUpdateButton
    VERSION = 82.0
    HOSTEDUBTTONID =的值爲
    BUTTONTYPE =按鈕的類型。例如。 BUYNOW
    BUTTONCODE =您想要取回的代碼類型。例如。 HOSTED
    L_BUTTONVAR0 =量=新的金額與期限作爲分隔符
    L_BUTTONVAR1 = ITEM_NAME =可選:新項目的名稱,如果你想

  3. 同時使用BMCreateButton和BMUpdateButton API的雙方創建和更新按鈕貝寶。
    您也可以使用BMCreateButton API創建一個新按鈕,或使用BMButtonSearch API搜索所有存儲的託管按鈕的列表(例如,自動查找您的按鈕的hosted_button_id)。

  4. 執行PayPal Express Checkout代替
    由於它包含2-3個API調用,因此它可能是「最難實施」的一個事務,它也是最靈活的。如果使用網站付款標準(「按鈕」),只要買家點擊「立即付款」,交易即可完成,快速結賬可讓買家「同意」貝寶網站上的交易,您可以在任何時間0 - 3小時後,買方通過致電DoExpressCheckoutPayment API調用初步同意付款。
    對於一個快速破敗上集成快速結賬,看到Checkout my order basket with PayPal