#magento #magento-1.5
#magento #magento-1.5
Вопрос:
я интегрировал сторонний платежный шлюз в magento. Он отлично обрабатывает успешную транзакцию или неудачную транзакцию.
Но что, если, когда пользователь находится на странице платежного шлюза, и время ожидания истекло, или когда на странице платежного шлюза пользователь закрывает страницу и возвращается на сайт позже, или пользователь просто нажимает кнопку «Назад»,
- как мне тогда отменить заказ?
- Должен ли я использовать для этого какой-нибудь наблюдатель?
- Если да, не могли бы вы подсказать, на какие события мне нужно запустить наблюдателя?
проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь перенаправляется на платежный шлюз, нажимает кнопку «Назад» и возвращается на сайт, заказ все равно создается, который в идеале должен был быть отменен.
Спасибо.
Ответ №1:
Ваши методы проверки не должны зависеть от сеанса и в любом случае должны обрабатывать любые отзывы (и проверять перед обработкой). Вам также нужна служба мониторинга, которая отключает заказы без ответа через некоторое время, если вам нужно, чтобы они были отключены своевременно.
Однако, если пользователь нажимает кнопку «Назад», вы действительно ничего не можете сделать, поскольку обратная связь от платежного шлюза никогда не отправляется на действия пользователя. Я знаю, что некоторые платежные шлюзы выдают автоматическую отправку с сервера независимо от того, что вам нужно выяснить, возможно ли это с вашим платежным шлюзом.
Комментарии:
1. Должны ли мои проверки выполняться с помощью javascript или выполнять проверку в наблюдателе? Также не могли бы вы подсказать, какое событие будет лучшим в моем сценарии? Было
sales_order_place_after
бы идеальным событием?2. Также не могли бы вы привести пример службы мониторинга, которая наилучшим образом соответствует моим потребностям. Спасибо.
3. вы можете использовать задания magento crontab для настройки мониторинга вашего расширения. если вы говорите о проверке ответа платежного шлюза (и о том, что пользователи нажимают назад), то вы имеете в виду, что пользователи покидают ваш сайт для размещения платежей?
4. Да, проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь перенаправляется на платежный шлюз, нажимает кнопку «Назад» и возвращается на сайт, заказ все равно создается, который в идеале должен был быть отменен. Я хочу запускать наблюдателя при создании заказа, и если заказ не находится в состоянии обработки примерно через 15 минут (скажем, на время ожидания), я хочу отменить заказ. Но не уверен, как справиться со сценарием, когда пользователь нажимает кнопку «Назад» на странице платежного шлюза.
5. Но я хочу выполнить проверку только при создании заказа. Может ли cron быть запущен для такого события? Не могли бы вы предоставить фрагмент кода для задания magento cron?