CURL PHP MyGate支付网关

时间:2013-04-12 10:26:30

标签: php curl https payment-gateway

我想向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);

提前致谢!

1 个答案:

答案 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将包含一个包含位置网址的数组。