Payfast 支付网关 ITN 请求在 Laravel 5.1 中不起作用
Payfast payment gateway ITN request not working in Laravel 5.1
我在我们的 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'
];
但这也行不通,我将示例代码文件夹放在我的网站根文件夹中并尝试进行付款,这会起作用。
此外,当我尝试在文本文件中写入通知响应时,它会打印成功以响应该文件。
调试我的代码后,我发现 CURL 有问题 post。
// 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 工作完美。
我在我们的 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'
];
但这也行不通,我将示例代码文件夹放在我的网站根文件夹中并尝试进行付款,这会起作用。
此外,当我尝试在文本文件中写入通知响应时,它会打印成功以响应该文件。
调试我的代码后,我发现 CURL 有问题 post。
// 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 工作完美。