1

mygate 支払いゲートウェイに詳細を投稿しようとしています。通常のフォームを使用して URL に投稿すると、その特定のセッションのトークン 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);

前もって感謝します!

4

1 に答える 1

1

成功するとページにリダイレクトされるため、リダイレクトされた URL の場所を取得できます。

curl オプションをいくつか設定すると、リダイレクト URL を取得できます。

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リダイレクト先になります。URL を取得して、ページをその場所にリダイレクトできます。

$r には、場所の URL を含む配列が含まれます。

于 2013-04-12T10:42:32.563 に答える