php - Paypal 实现 : Hidden Elements to PHP

标签 php security paypal paypal-ipn paypal-sandbox

我正在使用 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 或以某种方式隐藏它们?

非常感谢!

最佳答案

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

但是,如果您自己构建表单,则不能这样做。如果数据与应有的数据不匹配,您可以按照@Neil McGuigan 提到的方法尝试通过 IPN 取消/退款,但这不是我推荐的。

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

PayPal PHP SDK将使 Express Checkout API 调用对您来说非常快速和容易。具体来说,您将使用 SetExpressCheckout , GetExpressCheckoutDetails , 和 DoExpressCheckoutPayment .

该库带有随时可用的示例和模板,但如果您更喜欢 fully functional demo这些也可用。

关于php - Paypal 实现 : Hidden Elements to PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36379110/

相关文章:

php - 这是 mysql_real_escape_string 的正常行为吗?

php - PDO Last Insert ID 总是正确的吗?

php - 如何在不使用类的情况下使用MVC创意?

c# - MVC/ASP.NET 中的自定义 session 处理

php - 无需身份验证即可识别唯一用户

php - Paypal 购买按钮返回页面链接

iphone - Itunes Connect 中的 Paypal ?

javascript - 如何将 json 数据传递到 .js 文件

security - 如何针对 Linux KVM 编写模糊测试?

php - 如何在 Paypal 中分多个阶段处理付款?