2016-11-09 4 views
1

У меня есть интегрированный payful gate gateway на нашем веб-сайте Laravel 5.1, он отлично работает на нашем сервере разработки, но когда мы перемещаем сайт на реальном сервере, он дает ошибку на этапе запроса ITN, здесь это ошибка, которую я получаю:Payfast payment gateway Запрос ITN не работает в Laravel 5.1

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 токена

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

, но это тоже не работает, я положил папку образец кода в корневой папке моего сайта и попытайтесь выполнить платеж и это будет работать.

Также, когда я пытаюсь написать уведомление об ответе в текстовом файле, он печатает успех в ответ на файл.

ответ

2

После отладки моего кода я обнаружил, что есть проблема с сообщением 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 работать идеально после выполнения этих изменения.