這是我的第一個問題!PHP文件不會從HTML PayPal表單中抽取'AMOUNT'
我在創建可運行的PayPal結帳時出現了問題,它包含一個PHP文件和HTML文件(原始代碼要長得多,但我已將它煮沸並在此簡化)。觸發後,PHP文件會發送一封電子郵件給我,並提供訂單詳細信息,然後指導客戶結帳。這與AMOUNT似乎不希望拉入PHP文件的事實完全相同。
HTML文件簡單地具有用於每個字段的字符串的輸入(商品名稱,金額等):
<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="[email protected]">
<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的文件,然後把這個數據到一個數組,它然後發送到貝寶:
<?php
if(isset($_POST['item_name'])) {
$query_data = array(
'amount' => $_POST['amount'],
'business' => '[email protected]',
'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,所以我完全難住爲什麼它不適用於'數量'。
如果有人有任何想法,我會非常感激!
謝謝!
沒有什麼我可以看到在這種形式,將阻止'量'通過表單傳遞。然而,我只想說,除非是某種自由形式的「支付你喜歡的東西」字段,否則你絕不應該依賴任何東西在某處發佈的數量。這種邏輯都應該在服務器端處理。僅僅因爲表單域是隱藏的,並不意味着有人不能改變這個值。 –
根據PayPal開發者指南(https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/formbasics/),必須使用POST(而非GET)發送表單:「重要:不要更改這些值,所有付款按鈕和Cart上載命令都需要這些屬性。「我會更好奇爲什麼任何字段都顯示正確。你可能想嘗試一個POST。我在代碼中看不到任何其他問題。 –
用於測試put print_r($ _ POST);接近你的PHP文件的頂部,以查找是否$ _POST ['amount']甚至被傳遞,或者它只是空的ps ..按照die();否則你的重定向會阻止你看到它 –