Чтоб закрыть тему, вот в чем дело было:
Цитата |
---|
но есть одна проблема, модуль онлайн касс не видит то что заказ перешел в статус оплачено |
Цитата |
---|
Просим Вас обратить внимание, дергается ли после оплаты в нашем модуле метод для старых версий OnSalePayOrder, для новых OnSaleOrderPaid. |
Цитата |
---|
Обновляю статус оплаты этим кодом но не цепляется событие OnSaleOrderPaid |
С событием там все в порядке.
В модуле по событию и далее по цепочке есть такие строки:
Код |
---|
$order = CSaleOrder::GetByID($orderID);
if ($this->paySystems and !in_array($order['PAY_SYSTEM_ID'], $this->paySystems)) {
return;
} |
Как не трудно догадаться тут-то работа модуля и заканчивалась.
C приведенным выше листингом кода в результате ключ 'PAY_SYSTEM_ID' содержал null
Быстрое решение:
Заменить:
Код |
---|
CSaleOrder::PayOrder($result_order_id, "Y"); |
На:
Код |
---|
$arFields = array(
"PAYED" => "Y",
"DATE_PAYED" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))),
"USER_ID" => $USER_ID,
"PAY_SYSTEM_ID" => $PAY_SYSTEM_ID
);
CSaleOrder::Update($result_order_id, $arFields); |
P.S. Приведенный выше ТС код полностью из курса, если кто знает что с ним не так - поделитесь.