Skip to content

Второй чек выбивается 12 раз #74

Open
zhorapro opened this issue Jul 30, 2020 · 3 comments
Open

Второй чек выбивается 12 раз #74

zhorapro opened this issue Jul 30, 2020 · 3 comments

Comments

@zhorapro
Copy link

zhorapro commented Jul 30, 2020

Модуль версии 1.6.0
С 27 июля при переходе заказа в статус, указанный в настройке "Формировать второй чек при переходе заказа в статус", второй чек стал пробиваться 12 раз.
Происходит следующее:

  1. Метод hookOrderStatusChange перехватывает нужный статус и отправляет второй чек
  2. Делается запрос чеков по оплате и извлекается последний чек в массиве
  3. Перебор товаров из полученного последнего чека ищет товары со значением "payment_mode": "full_prepayment"
  4. Если такие товары в последнем чеке присутствуют, то формируется второй чек
  5. После успешной отправки второго чека метод hookOrderStatusChange вызывает изменение статуса со своим комментарием (Отправлен второй чек. Сумма %s рублей.)
  6. Изменение статуса в пункте 5 вызывает повторный цикл начиная с пункта 1
    Проблема в том, что последний чек, получаемый в пункте 2 - это самый первый чек, отправленный при оплате и у него всегда товары с атрибутом "payment_mode": "full_prepayment".
    Весь цикл крутиться до тех пор, пока последний чек в листинге (который ограничен 10 чеками) не станет одним из первых отправленных вторых чеков. Т.к. обновление листинга чеков происходит с небольшой задержкой, то успевают пробиться 11-13 чеков.

Ввиду того, что я у себя не вносил каких-то глобальных изменений в код движка, полагаю, что проблема в модуле. Возможно в методе catalog/model/extension/payment/yandex_money/Model/KassaSecondReceiptModel.php getLastReceipt имеет смысл заменить return array_pop($receipts); на return array_shift($receipts); Хотя это может не иметь смысла, судя по логам, запрос списка чеков на второй и третей итерации возвращает только первоначальный чек, вторые отправленные чеки туда не успевают попасть.

@ostulov
Copy link

ostulov commented Jul 30, 2020

Добрый день!

Благодарю за обращение, проблема появилась из-за изменений на стороне Яндекс.Кассы. Мы уже подготавливаем исправление для этой проблеме. В ближайшие несколько рабочих дней должно выйти обновление.
До момента обновления модуля временно отключите отправку вторых чеков.

@zhorapro
Copy link
Author

zhorapro commented Jul 31, 2020

К сожалению, исправление в версии 1.6.1 не совсем решает проблему, как я писал выше, второй чек появляется в листинге чеков с некоторой задержкой, сегодня, после установки обновления, у меня успело отправиться три лишних чека.

@ostulov
Copy link

ostulov commented Jul 31, 2020

Добрый день!

Сообщите пожалуйста, Ваш shopid или адрес сайта на почту cms@yamoney.ru. Посмотрим подробности по последним чекам.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

2 participants