【问题标题】:CURL PHP MyGate Payment gatewayCURL PHP MyGate 支付网关
【发布时间】:2013-04-12 10:26:29
【问题描述】:

我正在尝试将一些详细信息发布到 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);

提前致谢!

【问题讨论】:

  • 你得到什么样的成功信息。
  • 我的意思是成功消息,我得到 $result 的值为 1,如果我用谷歌测试它,它工作得很好。
  • hm 你在 $field_string 中有什么?
  • 在使用 curl 时,您只能通过 url 获得响应,或者您可以使用 file_get_contents。您不会加载该页面,但会显示该页面的 html 内容。

标签: php curl https payment-gateway


【解决方案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 的数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    相关资源
    最近更新 更多