我正在开发一个购物车,其中包含使用不同API的多种付款方式。
我想要的流程是用户选择使用哪种付款方式,并显示相应的表格。
在提交时,有关地址等的表单字段应保存在我的数据库中,有关付款的字段将通过POST发送到付款处理程序api。
用户只需单击一次就可以了,因此必须在点击提交按钮和将数据发送到付款服务器之间挤压db-save。
我想到了一个重定向,其中所有数据都被POSTED到,并且将数据保存在数据库中并重定向到支付服务器但是我如何重定向以及POST数据(不幸的是,GET不能正常工作)。
答案 0 :(得分:3)
您无法向HTTP客户端发送传统的Location:
标头以执行重定向并包含POST数据。你可以做的是:
答案 1 :(得分:2)
最简单的方法是在JavaScript代码中使用表单提交处理程序,该处理程序将发出AJAX POST请求以保存与客户相关的信息。
这也可以节省您的时间,因为您可以控制要发送到服务器的参数(除非您经过认证,否则不应将客户的信用卡/ CVV号码发送到您的服务器)。
答案 2 :(得分:-1)
如果安装了PECL http扩展(它将在phpinfo()中显示为pecl_http),您可以创建HTTP POST请求并按以下模式吐出结果:
// your DB code above here
$pay_request = new HttpRequest($remote_url, HTTP_METH_POST);
$pay_request->addPostFields($_POST);
$pay_request->send()->send();
最后一行不是拼写错误 - 请求返回响应,然后响应被转储到输出缓冲区。
答案 3 :(得分:-1)
试试这个
$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);