2017-02-06 12 views
0

У меня есть форма в joomla 2.5, которая позволяет пожертвования. На представить, форма делает следующий ..

  1. проверки внешней электронной почты, если хорошо, чем доходы
  2. Процессы Paypment через authorize.net, в случае успеха, следующие оба должны работать
  3. Сохраняет значения формы в базе данных
  4. Отправляет различные электронные письма пользователю и мне.

Мой вопрос касается № 3. Сохранить триггеры через следующую строку:

$result = parent::save($key, $urlVar); 

Из последних 50 ПРЕДСТАВЛЯЕТ, 3 не сохранить в базе данных, даже если они были обвинены через authorize.net и электронные письма были отправлены пользователю и мне. Какой был бы лучший способ проверить/сломать то, что происходит.

ответ

0

Лучшим способом устранения неполадок является запись переменных перед отправкой и после получения от authorize.net текстового файла. Когда вы анализируете данные журнала, которые не были введены в базу данных, вы точно узнаете, почему это произошло. В моем Paypal плагин я следую этот код для записи в текстовый файл

function log_ipn_results($success) { 
     if ($this->ipn_log) { 
      $text = '[' . date('m/d/Y g:i A') . '] PAYPAL RESPONSE - '; 
      if ($success) 
       $text .= "SUCCESS!\n"; 
      else $text .= "FAIL!\n"; 
      $text .= "IPN POST Vars from Paypal:\n"; 
      foreach ($this->ipn_data as $key=>$value) { 
       $text .= "$key=$value, "; 
      } 
      $text .= "\nIPN Response from Paypal Server:\n " . $this->ipn_response; 
      $fp  = fopen($this->ipn_log_file, 'a');//Your log file path 
      fwrite($fp, $text . "\n\n"); 
      fclose($fp); // close file 
     } else { 
      // @todo does not log ipn file 
     } 
    } 

Подобным же образом вы можете хранить ответ от authorise.net сервера, а затем вы можете проанализировать его.

+0

спасибо, что ответите. Немного больше объяснений .. Раздельный массив создается и отправляется на Authorize.net для обработки. Авторизация отправляет ответ .. либо «успех», либо «сбой». Сохранение в базу данных + код электронной почты выполняется только в том случае, если ответ «успех» 'if ($ payment == 'success')'. Таким образом, переменные собираются на authorize.net точно. Проблема, похоже, в строке '$ result = parent :: save ($ key, $ urlVar);', если вместо этого у меня был доступ к фактической вставке в запрос, чем я мог бы проверить, изменились ли строки. Вместо этого эта функция указывает на основные файлы joomla. – mashstix