Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Ошибки при отправке почты через SMTP уведомление об успешной оплате


Recommended Posts

При чекауте, после успешного прохождения оплаты вызывается метод $this->model_checkout_order->addOrderHistory, который, среди всего прочего, отправляет письма заказчику и администратору. В том случае, если используется php mail, то никаких проблем нет.

 

А вот отправка почты через SMTP выглядит таким образом (system/library/mail.php)

if (!$handle) {
   trigger_error('Error: ' . $errstr . ' (' . $errno . ')');
   exit();
}

И так после любой ошибки. Соответственно, если возникает ошибка при оплате почты, выполнение прерывается и пользователь остаётся на странице оплаты, в лучшем случае с заблокированной кнопкой "оплатить".

 

Вижу два варианта решения:

 

1. Заменить все exit() на return с записью в лог. Но в этом случае придётся менять файлы ядра, что ни есть хорошо.

2. Настроить sendmail на работу через SMTP релей. Но тоже как-то вариант не особо нравится.

 

Кто как решает эту проблему?

 

Надіслати
Поділитися на інших сайтах


Кто как решает эту проблему?

Я - 2. Но и в (1) не вижу ничего плохого - косяки надо изправлять и слать пулл-реквесты в опенкарт. DK, конечно, тот ещё подарочек, но такие косяки исправлять надо. И последнее время там у него появились люди, которые его способны то ли смягчить, то ли переубедить. Так что может и примут. Но я бы поискал предварительно, не обсуждалось ли это у них в issues на гитхабе.

Надіслати
Поділитися на інших сайтах


Но я бы поискал предварительно, не обсуждалось ли это у них в issues на гитхабе.

 

Нашёл обсуждение этой проблемы в 2013 году. Причём ДК пометил его как исправленное, но, похоже, что-то пошло не так, поскольку во второй версии проблему подняли снова :-) 

 

Хорошо хоть, что проблему отловил на тестовом сайте, когда модуль оплаты по карточкам настраивал.

Надіслати
Поділитися на інших сайтах


В итоге во 2-й версии и exit остался и trigger_error.

 

Странно, что никто в массовом порядке на эту ошибку не жалуется. Всё-таки smtp почта довольно популярна последнее время стала.

 

Я, в итоге, пошёл по пути 1.  

Надіслати
Поділитися на інших сайтах


1) ошибки, видимо, редко возникают;

2) если и возникают, то их последствия видит (или скорей не видит) покупатель, а не владелец. И понять, что там за ошибка (тем более не всегда проявляющаяся) - задача нетривиальная.

Вот и не жалуются.

Надіслати
Поділитися на інших сайтах


В итоге во 2-й версии и exit остался и trigger_error.

Имеет смысл просмотреть историю изменений этого файла. Должна же быть причина. Может описана в комментариях к коммитам.

Надіслати
Поділитися на інших сайтах


1) ошибки, видимо, редко возникают;

2) если и возникают, то их последствия видит (или скорей не видит) покупатель, а не владелец. И понять, что там за ошибка (тем более не всегда проявляющаяся) - задача нетривиальная.

Вот и не жалуются.

 

У покупателя это проявляется в том, что оплата прошла, а финального сообщения от магазина он не видит. Хотя, как я подозреваю, многие пейпалом платят, а там в любом случае сначала получаешь результат от пейпала, а потом редирект в магазин. Если на этом этапе что-то сломалось, то не так и страшно, тем более письмо от пейпала всё равно приходит.

 

А историю изменений посмотрю, спасибо за идею.

Надіслати
Поділитися на інших сайтах


У покупателя это проявляется в том, что оплата прошла, а финального сообщения от магазина он не видит.

Ну и? Я бы подумал на кривой магазин или плохую интеграцию с платёжной системой, на сбой платежа, проблемы с картой. Про смтп и почту подумать может только разве что разработчик, который изучал кишки магазина. Остальным и в голову эта мысль не придёт.

Надіслати
Поділитися на інших сайтах


Ну и? Я бы подумал на кривой магазин или плохую интеграцию с платёжной системой, на сбой платежа, проблемы с картой. Про смтп и почту подумать может только разве что разработчик, который изучал кишки магазина. Остальным и в голову эта мысль не придёт.

 

Я к тому, что баг нехороший. Если оплата карточкой, то оплата физически проходит, а пользователь остаётся на форме ввода данных карточки. В итоге может начать повторно оплачивать. А про то, с чем это связано, понятно, что пользователь не догадается.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.