2016-04-02 95 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,也可以使用这些示例和模板。