Paypal实现:PHP的隐藏元素


Paypal Implementation: Hidden Elements to PHP

我正在实现Paypal向我的网站付款。但也有一些隐藏的形式元素,例如价格,我们可以很容易地操纵它们。例如,我如何在PHP中完美地隐藏它们,这样就没有人可以操纵值了?

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="business" value="business@email.com">
    <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或以某种方式隐藏它们?

非常感谢!

如果您想坚持使用"支付标准"并隐藏详细信息,则需要使用托管按钮。在您的PayPal帐户中创建按钮的过程中,可以选择"在PayPal保存按钮"。这将创建一个托管按钮,在这种情况下,所有的详细信息都存储在PayPal中,因此按钮代码只有一个按钮ID,这对任何尝试任何棘手事情的人来说都没有意义。

不过,如果你自己构建表单,你就不能这么做。你可以按照@Neil McGuigan提到的去做,如果数据与应该的不匹配,你可以尝试通过IPN取消/退款,但我不建议这样做。

我建议使用快速结账API而不是支付标准。这是最安全的方法,随着你的网站的发展,你不会像使用支付标准那样受到限制。

这个PayPal PHP SDK将使快速结账API调用对您来说非常快速和简单。具体来说,您将使用SetExpressCheckout、GetExpressCheckoutDetails和DoExpressCheckoutPayment。

该库提供了现成的示例和模板,但如果您喜欢功能齐全的演示,这些也可以使用。