yoomoney / cms-opencart3

YooKassa payment module for Opencart 3.x
https://yookassa.ru/developers
Other
21 stars 16 forks source link

Повторная смена статуса заказа при успешной оплате #89

Open IvanLadygin opened 3 years ago

IvanLadygin commented 3 years ago

Версия модуля: 1.9.3 Возникает (предположение) если клиент "задержался" на странице оплаты - не сразу нажал вернуться в магазин 1 раз Статус заказа меняется на "оплачен"(кастомный) при получении подтверждения платежа (клиент еще не вернулся в магазин, а уведомление пришло)

В моем случае (электронный товар) товар отправляется покупателю автоматически, статус заказа меняется на "выполнен"

2 раз статус заказа меняется на "оплачен" при возврате клиента в магазин, предполагаю что при этом идет повторная коммуникация с подтверждением платежа

Ну и соответственно, товар отгружается повторно (в моем случае)

Не могу сказать, что это не корректное поведение модуля, но раз вы так оперативно отвечаете, возможно подскажете как (ладно, не будем наглеть, хотя бы где) отменить повторную смену статуса заказа если "payment_id" уже имеет запись с датой "captured_at" в базе

IvanLadygin commented 3 years ago

Оперативность поддержки закончилась на простом вопросе...)) короч поправил /catalog/model/extension/payment/yandex_money.php стр. 362 добавил проверку дублирования статуса в истории

        $check_second_change_query=$this->db->query('SELECT `date_added` FROM `'.DB_PREFIX.'order_history` WHERE `order_id`='.(int)$orderId.' and `order_status_id`='.(int)$statusId.';');
        if ($check_second_change_query->num_rows<1){
ostulov commented 3 years ago

Добрый день!

Благодарю за обращение и добавление решения!

Для оперативной поддержки Вы всегда можете обратиться в службу поддержки Яндекс.Кассы по почте yamoney_shop@yamoney.ru или cms@yamoney.ru