【问题标题】:Paypal Implementation: Hidden Elements to PHPPaypal 实施:PHP​​ 的隐藏元素
【发布时间】:2016-07-22 14:31:09
【问题描述】:

我正在对我的网站实施 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 或其他方式隐藏它们?

非常感谢!

【问题讨论】:

  • 在您的服务器上保留会话中的信息,如果值发生更改则取消订单,或者使用 HMAC 签署订单并将其传递给贝宝并在完成后检查

标签: php security paypal paypal-ipn paypal-sandbox


【解决方案1】:

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

但是,如果您自己构建表单,则不能这样做。您可以按照@Neil McGuigan 提到的方式进行操作,如果数据与应有的数据不符,请尝试通过 IPN 取消/退款,但我不建议这样做。

我建议使用Express Checkout API 而不是付款标准。这是完成这项工作的最安全方式,随着您网站的发展,您将不会像使用 Payments Standard 那样受到限制。

PayPal PHP SDK 将使 Express Checkout API 调用对您来说非常快速和轻松。具体来说,您将使用SetExpressCheckoutGetExpressCheckoutDetailsDoExpressCheckoutPayment

该库附带了可以使用的示例和模板,但如果您更喜欢fully functional demo,这些也可以使用。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2010-10-01
    • 1970-01-01
    • 2014-03-01
    • 2012-03-26
    • 2011-12-28
    相关资源
    最近更新 更多