Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用paypal IPN时如何保护金额字段?_Php_Wordpress_Paypal - Fatal编程技术网

Php 使用paypal IPN时如何保护金额字段?

Php 使用paypal IPN时如何保护金额字段?,php,wordpress,paypal,Php,Wordpress,Paypal,我已经创建了一个wordpress插件,它创建了paypal buy now按钮并使用paypal IPN。。。这是我的表格代码 $output = '<form name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_blank"> <input type="hidden" name="c

我已经创建了一个wordpress插件,它创建了paypal buy now按钮并使用paypal IPN。。。这是我的表格代码

$output =   '<form name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_blank">
                            <input type="hidden" name="cmd" value="_xclick">
                            <input type="hidden" name="business" value="'.$paypalID.'">
                            <input type="hidden" name="return" value="'.$return_url.'">
                            <input type="hidden" name="currency_code" value="'.$currency.'">
                            <input type="hidden" name="item_name" value="'.$product_name.'">
                            <input type="hidden" name="amount" id="p'.$product_id.'" value="'.$product_price.'">
                            <input type="hidden" name="custom" value="'.$responderID.'">
                            <input name="notify_url" value="'.plugin_dir_url( __FILE__ ).'ipn_sandbox.php" type="hidden">
                            <input type="image" src="'.$upload_image.'" border="0" name="submit" alt="Make payments with PayPal - its fast, free and secure!"> 
                        </form>'; 
$output=
'; 
问题是。。。在向paypal提交信息时,用户可以轻松更改产品的价格,并将错误的价格发送给paypal。。例如,如果产品价值10美元,用户可以使用inspect元素将价格更改为1美元或用户喜欢的任何价格,然后将其发送给paypal。。有没有办法防止这种情况发生,或者确保价格域的安全。。谢谢

我找到了一个解决办法。。。我已经在表单的正下方添加了这个javascript代码,它正在工作。。。但是现在的问题是,如果我在一个页面上放置多个按钮(比如说一个页面上有两个按钮),两个按钮都会停止工作,除非给定的两个按钮都是相同的

$output .= "<script>jQuery(document).ready(function(){var a=".$product_price.";jQuery('form[name=_xclick]').submit(function(c){var b=jQuery('input[id=p".$product_id."]').val();if(b==a){return}else{c.preventDefault()}})});</script>";
$output.=“jQuery(document).ready(function(){var a=“.$product_price.”jQuery('form[name=_xclick]')。submit(function(c){var b=jQuery('input[id=p.$product_id.]')).val();if(b==a){return else{c.preventDefault()});”;
如果按钮1的价格=20美元,按钮2的价格=20美元,则两个按钮都可以工作

但是

如果按钮1的价格=20美元,按钮2的价格=21美元,则两个按钮都不起作用


有什么建议/想法吗

有两种方法可以做到这一点。如果您对固定产品/服务使用固定价格,且价格不变,您可以在PayPal网站上查看


或者,在接收IPN通知的PHP脚本中,您可以检查
$\u POST['mc\u gross']
中的金额是否与您预期的金额相符。

Uhm?你检查了数据库中的价格和IPN返回的价格吗?根据我的情况,我认为应该在使用buy now按钮提交给paypal之前检查价格。。有没有一种方法可以做到这一点?好吧,这是一个创建产品的插件。。我的意思是一个按钮的产品,所以价格是固定的每个按钮…主要的收获是,你不能动态创建加密按钮,你必须去贝宝网站,每次你想创建一个。因此,在某些情况下,这限制了它的实用性。无论如何,要绝对确保在处理订单、装运项目等之前,您应该始终检查IPN中的数据。