使用POST数据进行PHP重定向

使用POST数据进行PHP重定向

我做了一些关于这个主题的研究,有些专家说过这是不可能的,所以我想问一个替代解决方案。

我的情况:

页面A:[checkout.php]客户填写其结算明细。

页面B:[process.php]生成发票编号并将客户详细信息存储在数据库中。

页面C:[thirdparty.com]第三个支付网关(仅接受发布数据)。

客户填写他们的详细信息并在页面A中设置他们的购物车,然后POST到页面B.在process.php内部,将POSTed数据存储在数据库中并生成发票编号。之后,将客户数据和发票号码发布到thirdparty.com支付网关。问题是在页面B中进行POST .cURL能够将数据发布到页面C,但问题是页面没有重定向到页面C.客户需要在页面C上填写信用卡详细信息。

第三方支付网关确实给了我们API样本,样本是POST发票号和客户详细信息。我们不希望系统生成多余的不需要的发票号。

这有什么解决方案吗?我们当前的解决方案是让客户填写页面A中的详细信息,然后在页面B中我们创建另一个页面,显示那里的所有客户详细信息,用户可以单击确认按钮POST到页面C.

我们的目标是让客户只需点击一次。

希望我的问题很明确:)


梦里花落0921
浏览 478回答 3
3回答

白衣染霜花

/**  * Redirect with POST data.  *  * @param string $url URL.  * @param array $post_data POST data. Example: array('foo' => 'var', 'id' => 123)  * @param array $headers Optional. Extra headers to send.  */public function redirect_post($url, array $data, array $headers = null) {     $params = array(         'http' => array(             'method' => 'POST',             'content' => http_build_query($data)         )     );     if (!is_null($headers)) {         $params['http']['header'] = '';         foreach ($headers as $k => $v) {             $params['http']['header'] .= "$k: $v\n";         }     }     $ctx = stream_context_create($params);     $fp = @fopen($url, 'rb', false, $ctx);     if ($fp) {         echo @stream_get_contents($fp);         die();     } else {         // Error         throw new Exception("Error loading '$url', $php_errormsg");     }}
打开App,查看更多内容
随时随地看视频慕课网APP