2016-04-02 89 views
1

我正在實施貝寶付款到我的網站。但是有一些隱藏的表單元素,例如價格和我們可以輕鬆操作的這些元素。我怎樣才能將它們完美地隱藏在PHP中,例如沒有人可以操縱這個值?貝寶實施:隱藏元素到PHP

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 

    <input type="hidden" name="business" value="[email protected]"> 

    <input type="hidden" name="cmd" value="_xclick"> 

    <input type="hidden" name="item_name" value="Item Example 1"> 
    <input type="hidden" name="item_number" value="1"> 
    <input type="hidden" name="amount" value="5.95"> 
    <input type="hidden" name="currency_code" value="USD"> 

    <input type='hidden' name='cancel_return' value='http://example.com/cancel.php'> 
    <input type='hidden' name='return' value='http://example.com/success.php'> 

    <input type="image" name="submit" border="0" 
    src="https://www.paypalobjects.com/en_US/i/btn/btn_buynow_LG.gif" alt="PayPal - The safer, easier way to pay online"> 
    <img alt="" border="0" width="1" height="1" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" > 

</form> 

隱藏要素item_nameitem_numberamountcurrency_code我不希望看到他們。有沒有機會用PHP或以某種方式隱藏它們?

非常感謝!

+0

將會話中的信息保存在您的服務器上,並在價值發生變化時取消訂單,或者使用HMAC簽署訂單並將其傳遞給PayPal,並在通過PayPal後將其檢查 –

回答

1

如果您想堅持使用付款標準並隱藏您需要使用託管按鈕的詳細信息。在PayPal帳戶中創建按鈕的過程中,可以選擇「在PayPal上保存按鈕」。這將創建一個託管按鈕,在這種情況下,所有細節都存儲在PayPal中,所以按鈕代碼只有一個按鈕ID,這對任何嘗試任何棘手問題的人都沒有任何意義。

但是,如果您自己構建表單,則不能這樣做。你可以做@Neil McGuigan提到的,並且如果數據與它本來不匹配,嘗試通過IPN取消/退款,但這不是我所推薦的。

我會建議使用Express Checkout API而不是付款標準。這是完成它的最安全的方式,隨着您在網站上的成長,您不會像使用Payments Standard那樣受到限制。

這個PayPal PHP SDK將使您的Express Checkout API調用非常快速和容易。具體來說,您將使用SetExpressCheckout,GetExpressCheckoutDetailsDoExpressCheckoutPayment

該庫附帶了可以使用的示例和模板,但是如果您更喜歡fully functional demo,也可以使用這些示例和模板。