本质上,我有一个打印表格的页面,填写表格 - 然后用户被重定向到第 3 方支付页面(并且数据通过 xml 请求发送到第 3 方支付页面)。这是应该工作的功能:
function redirect_form()
{
global $pxpay;
$request = new PxPayRequest();
$http_host = getenv("HTTP_HOST");
$request_uri = getenv("SCRIPT_NAME");
$server_url = "http://$http_host";
#$script_url = "$server_url/$request_uri"; //using this code before PHP version 4.3.4
$script_url = "$server_url$request_uri"; //Using this code after PHP version 4.3.4
#$script_url = (version_compare(PHP_VERSION, "4.3.4", ">=")) ?"$server_url$request_uri" : "$server_url/$request_uri";
$MerchantReference = $_REQUEST["Reference"];
$StudentName = $_REQUEST["x_name"];
$Venue = $_REQUEST["x_venue"];
$Course = $_REQUEST["x_course"];
$AmountInput = $_REQUEST["x_amount"];
$Currency = $_REQUEST["x_currency"];
$Email = $_REQUEST["x_email"];
#Generate a unique identifier for the transaction
$TxnId = uniqid("ID");
#Set PxPay properties
$request->setMerchantReference($MerchantReference);
$request->setAmountInput($AmountInput);
$request->setTxnData1($StudentName);
$request->setTxnData2($Venue);
$request->setTxnData3($Course);
$request->setTxnType("Purchase");
$request->setCurrencyInput($Currency);
$request->setEmailAddress($Email);
$request->setUrlFail($script_url); # can be a dedicated failure page
$request->setUrlSuccess($script_url); # can be a dedicated success page
$request->setTxnId($TxnId);
#The following properties are not used in this case
# $request->setEnableAddBillCard($EnableAddBillCard);
# $request->setBillingId($BillingId);
# $request->setOpt($Opt);
#Call makeRequest function to obtain input XML
$request_string = $pxpay->makeRequest($request);
#Obtain output XML
$response = new MifMessage($request_string);
#Parse output XML
$url = $response->get_element_text("URI");
$valid = $response->get_attribute("valid");
#Redirect to payment page
header("Location: ".$url);
}
此表单在使用 $_REQUEST 时在示例代码中完美运行,并且如果我注释掉定义每个变量的部分,则表单可以完美发送 - 每个变量也是一个字符串。
我已经完成了将变量定义为纯文本的测试,它仍然有效。
此函数由以下人员调用:
if (isset($_POST['StudentName'])) { redirect_form(); }
问题是该页面只是进入一个空白页面 - 应该在哪里进入付款页面。
任何建议,将不胜感激。
编辑:- PHP 错误报告显示:
Warning: Cannot modify header information - headers already sent by (output started at /home/becky/public_html/paymentconfirmation.php:244) in /home/becky/public_html/paymentconfirmation.php on line 288
第 244 行是:
$MerchantReference = $_REQUEST["Reference"];
第 288 行是标题调用:
header("Location: ".$url);
我不明白的是,这个问题只有在已经有一个会话开始填写表格时才会出现(我需要这个)。如果您在此页面上开始会话,则没有问题。
如果这是一个简单的问题,请原谅我 - 我试图找到一个已经解决但很困难的类似问题