我正在使用 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_name
、item_number
、amount
和 currency_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/