Обработчик платежной системы IntellectMoney

Модератор
#
Re: Обработчик платежной системы IntellectMoney
Мы наконец получили информацию от IntellectMoney, изменения внесены в первое сообщение данной темы. Необходимо обновить обработчик платежной системы и перенести код обработки из кода типовой дин. страницы в код настроек типовой дин. страницы.
#
Re: Обработчик платежной системы IntellectMoney
В первом посте не закрыт код "?>"
Модератор
#
Re: Обработчик платежной системы IntellectMoney
а он и не должны быть закрыт
#
Re: Обработчик платежной системы IntellectMoney
Речь о последней строчке кода Обработчика платежной системы.
Модератор
#
Re: Обработчик платежной системы IntellectMoney
xshock,
еще раз повторяю, он может быть не закрыт, ознакомьтесь со спецификацией PHP.
#
Re: Обработчик платежной системы IntellectMoney
дело ваше, но почему-то во всех остальных обработчиках он есть..
Модератор
#
Re: Обработчик платежной системы IntellectMoney
Скоро и там не будет
#
Re: Обработчик платежной системы IntellectMoney
xshock, вы, может быть, не в курсе, но в настоящее время во многих php-фреймворках принято не закрывать последний php-тег. Это позволяет, в частности, избежать ошибки, когда после закрывающего тега остается перевод строки. Поскольку он находится после закрывающего тега, при выполнении скрипта отдается в браузер "как есть". И если этот скрипт выполняется до отправки http-заголовков, то это приведет к отображению в браузере сообщения об ошибке (вывод заголовков начат после вывода данных), хотя визуально в этом файле все в порядке

А вообще-то это уже оффтоп.
Заказов не беру. Консультирую редко.
#
Re: Обработчик платежной системы IntellectMoney
Вообще полезли другие баги.
Связанные с интеграцией этой ПС и модуля SMS-уведомлений от Internet-Expert.

Суть ошибки: при отправке уведомления со стороны ПС на сайт, запускается обработчик сохранения заказа.

Вот комментарий:
Цитата:

Вероятно какой то баг в обработчике платежной системы

При проведении платежа IM стучится и попадает сюда:
if (isset($_REQUEST['orderId']))
      {
         $this->ProcessResult();
      }
$this->ShowPurseRequest();

ProcessResult - обрабатывает платеж и выходит из скрипта не попадая еще раз на оформление заказа.
Но в 2х случаях он всетаки не выходит из скрипта:
// Заказ не найден или уже оплачен
      if (!$order_row || $order_row['shop_order_status_of_pay'])
      {
         return false;
      }
если заказ не найден или оплачен, то скрипт идет в обычное оформление заказа (бред)

$param['system_information'] = 'Хэш не совпал!';

         // Обновляем информацию о заказе
         $shop->InsertOrder($param);
И тоже идет в обычное оформление заказа

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

#
Re: Обработчик платежной системы IntellectMoney
Жду ответа! Что делать с СМС уведомлением, оно прописано во всех ПС одинаково

      // Если заказ еще не был оформлен
      if ($_SESSION['last_order_id'] == 0)
      {
         // Оформляем заказ
         $order_id = $shop->ProcessOrder($shop_id, $site_users_id, $system_of_pay_id, $order_row);
         if(class_exists('iexsms')){$iexsms = &singleton('iexsms');$iexsms->SendNotificationAboutOrder($order_id);}
      }
      else
      {
         $order_id = $_SESSION['last_order_id'];
      }


Поэтому запрос от ИМ обращается сюда же.
Авторизация