PHP 文件不会从 HTML PayPal表单中提取"AMOUNT"



这是我关于SO的第一个问题!

我有问题创建一个工作的PayPal付款,包括一个PHP文件和HTML文件(原来的代码是长得多,但我已经煮沸并简化了它在这里)。触发后,PHP文件在指示客户结帐之前向我发送一封包含订单详细信息的电子邮件。除了AMOUNT似乎不想拉到PHP文件之外,这工作得很好。

HTML文件只是为每个字段(Item Name, Amount等)提供字符串输入:

<html>
<head>
<title></title>
</head>
<body>
<form name="contactform" id="contactform" action="test.php" method="post" style="float:initial" >
<input type="hidden" id="cmd" name="cmd" value="_xclick">
<input type="hidden" id="business" name="business" value="test@test.com">
<input type="hidden" id="item_name" name="item_name" value="Test Item">
<input type="hidden" id="currency_code" name="currency_code" value="USD">
<input type="hidden" id="amount" name="amount" value="1.00">
<input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_buynowCC_LG.gif" id="button" style="margin-top:30px"  name="submit" alt="Make payments with PayPal - it's fast, free and secure!" >
</form>
</body>
</html>

PHP文件将这些数据放入一个数组中,然后发送给PayPal:

<?php
if(isset($_POST['item_name'])) {

 $query_data = array(
'amount' => $_POST['amount'],
    'business' => 'test@test.com',
    'cmd' => '_xclick',     
    'currency_code' => 'USD',
    'item_name' => $_POST['item_name'],
);
}
header('Location: https://www.paypal.com/cgi-bin/webscr' . http_build_query($query_data));
exit;
?>

这会拉出包括item_name在内的所有其他内容,所以我完全被难住了,为什么它不能为'amount'工作。

如果有人有任何建议,我将非常感激!

谢谢!

对test.php底部header函数的调用在URL和查询字符串之间缺少一个问号。

PHP手册(http://php.net/manual/en/function.http-build-query.php)没有明确说明http_build_query函数的返回值是否包含问号,但示例表明它不包含问号。

由于'amount'变量是列出的第一个变量,因此有可能它没有注册到PayPal上解析查询字符串的任何代码,但由于与符号分隔了它们,因此正在读取其他名称-值对。PayPal的HTML变量文档确实指出,如果没有发送,将提示用户输入金额。

最新更新