猿问

用POST数据重定向PHP

用POST数据重定向PHP

我对这个问题做了一些研究,也有一些专家说这不是。可能因此,我想要求另一种解决办法。

我的处境:

页面A:[checkout.php]客户填写他们的账单细节。

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

第三支付网关(只接受邮寄数据)。

客户在页面A中填写他们的详细信息并设置他们的购物车,然后在process.php中发布到PageB,在数据库中存储已发布的数据,并生成一个发票号码。在此之后,将客户数据和发票号码张贴到第三部分支付网关。问题是在B页中发布数据,CURL可以将数据发布到C页,但问题是页面没有重定向到C页。客户需要在C页上填写信用卡详细信息。

第三方支付网关确实给了我们API示例,示例是将发票号与客户详细信息一起张贴。我们不希望系统产生多余的不必要的发票号码。

有什么解决办法吗?我们目前的解决方案是让客户填写A页中的详细信息,然后在B页中创建另一个显示所有客户详细信息的页面,用户可以单击“确认”按钮将其发送到C页。

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

希望我的问题是清楚的:)


米琪卡哇伊
浏览 1060回答 3
3回答

ibeautiful

/**  * 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
我要回答