我想向mygate支付网关发布一些细节。 如果我使用普通表单并发布到网址,它会为该特定会话生成令牌ID,并在内部将页面重定向到详细信息捕获页面。
由于我使用curl这样做,我收到了成功消息,但我无法获得所需的页面。
是否可以使用curl在新选项卡中加载相同的页面,我怀疑这会对我有所帮助。
任何其他解决方案也将受到赞赏。
我试过的代码是:
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);
//turning off the server and peer verification(TrustManager Concept).
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$result = curl_exec($ch);
if(!$result)
{
echo curl_error($ch);
}
else
{
echo $result;
}
//close connection
curl_close($ch);
提前致谢!
答案 0 :(得分:2)
由于成功后会重定向到某个页面,您可以获取重定向网址的位置。
您可以通过设置一些curl选项来获取重定向网址。
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$a = curl_exec($ch);
if(preg_match('#Location: (.*)#', $a, $r))
$l = trim($r[1]);
$l
将是重定向位置。您可以获取网址并将网页重定向到该位置。
$ r将包含一个包含位置网址的数组。