【问题标题】:Payfast payment gateway ITN request not working in Laravel 5.1Payfast 支付网关 ITN 请求在 Laravel 5.1 中不起作用
【发布时间】:2017-03-23 09:41:28
【问题描述】:

我已经在我们的 Laravel 5.1 网站中集成了 payfast 支付网关,它在我们的开发服务器上运行良好,但是当我们在实时服务器上移动网站时,它在 ITN 请求步骤中出现错误,这是我得到的错误:

HTTP/1.1 500 Internal Server Error
Date: Wed, 09 Nov 2016 14:10:09 GMT
Server: Apache
Cache-Control: no-cache, private
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

当我在寻找解决方案时,我得到了以下选项来启用没有 CSRF 令牌的 ITN 请求

protected $except = [
//
'/itn'
];

但这也不起作用,我将示例代码文件夹放在我的网站根文件夹中并尝试付款,这样就可以了。

此外,当我尝试在文本文件中写入通知响应时,它会打印成功以响应文件。

【问题讨论】:

    标签: php laravel-5.1 payment-gateway


    【解决方案1】:

    调试我的代码后,我发现 CURL 帖子有问题。

    // Base settings
                $curlOpts = array(
                // Base options
                CURLOPT_USERAGENT => USER_AGENT, // Set user agent
                CURLOPT_RETURNTRANSFER => true, // Return output as string rather than outputting it
                CURLOPT_HEADER => false, // Don't include header in output
                CURLOPT_SSL_VERIFYHOST => true,
                CURLOPT_SSL_VERIFYPEER => false,
                // Standard settings
                CURLOPT_URL => 'https://' . $pfHost . '/eng/query/validate',
                CURLOPT_POST => true,
                CURLOPT_POSTFIELDS => $pfParamString,
                );
                curl_setopt_array($ch, $curlOpts);
                // Execute CURL
                $res = curl_exec($ch);
                curl_close($ch);
    

    由于这两行代码而出现主要问题

                CURLOPT_SSL_VERIFYHOST => true,
                CURLOPT_SSL_VERIFYPEER => false,
    

    我改变它的值,它开始工作

                CURLOPT_SSL_VERIFYHOST => 2,
                CURLOPT_SSL_VERIFYPEER => true,
    

    这将解决我的问题,并且在进行这些更改后 payfast 可以完美运行。

    【讨论】:

    • 我如何从 payfast 给出的通知 url 中获取响应
    猜你喜欢
    • 2017-03-25
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多