Php 使用POST数据重定向
我在一个购物车上工作,有几个付款选项,使用不同的API 我想要的流程是,用户选择要使用的支付选项,并显示相应的表单 提交时,有关地址等的表单字段应保存在my DB中,有关付款的字段随POST一起发送到付款处理程序api 重要的是,用户只需单击一次,以便在单击submit按钮和将数据发送到支付服务器时,必须将save in db压缩Php 使用POST数据重定向,php,javascript,redirect,Php,Javascript,Redirect,我在一个购物车上工作,有几个付款选项,使用不同的API 我想要的流程是,用户选择要使用的支付选项,并显示相应的表单 提交时,有关地址等的表单字段应保存在my DB中,有关付款的字段随POST一起发送到付款处理程序api 重要的是,用户只需单击一次,以便在单击submit按钮和将数据发送到支付服务器时,必须将save in db压缩 我想到了一种重定向,所有数据都会被发送到,并将数据保存在DB中并重定向到支付服务器,但我如何与POST数据一起重定向(很遗憾,GET无法正常工作)。您不能将传统的位置
我想到了一种重定向,所有数据都会被发送到,并将数据保存在DB中并重定向到支付服务器,但我如何与POST数据一起重定向(很遗憾,GET无法正常工作)。您不能将传统的
位置:
头发送到HTTP客户端进行重定向并包含POST数据。你可以做的是:
- 使用AJAX请求获取正确的目标URL
- 通过JavaScript(在AJAX回调函数中)使用该URL更新表单操作
- 提交表格
// your DB code above here
$pay_request = new HttpRequest($remote_url, HTTP_METH_POST);
$pay_request->addPostFields($_POST);
$pay_request->send()->send();
最后一行不是输入错误-请求返回一个响应,然后将响应转储到输出缓冲区。最简单的方法是在JavaScript代码中使用表单提交处理程序,该处理程序将发出AJAX POST请求以保存与客户相关的信息
- 支付表单的操作应指向支付网关
- 将JavaScript on submit事件附加到付款表单
- 在提交处理程序中,收集所有客户信息(姓名、地址等),并向服务器发送AJAX帖子
- 确保提交处理程序返回false,以便POST不会立即提交到支付网关
- 一旦AJAX POST成功,使用JavaScript提交支付表单
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'content' => http_build_query($_POST)
),
));
echo file_get_contents($url, false, $context);
谢谢我得到了与上面相同的答案,但我想请你给出更好的解释