События Magento PayPal модуля - PullRequest
       19

События Magento PayPal модуля

5 голосов
/ 28 ноября 2011

Недавно я настроил несколько автоматических сценариев, чтобы помочь мне управлять входящими заказами для магазина Magento с помощью наблюдателей и событий Magento.Моя проблема связана с вопросом, когда именно заказ размещается и сохраняется в системе в зависимости от выбранного типа оплаты.

Например: если кто-то просто выбирает предоплату, заказ сохраняется сразу, а клиент автоматическиперенаправлен на страницу успеха - так что никаких проблем пока нет.

Если клиент платит через Paypal, вся ситуация совершенно иная.После перенаправления в PayPal, входа в учетную запись и подтверждения оплаты клиент не перенаправляется в магазин Magento.Он может щелкнуть ссылку, чтобы вернуться туда, которая также перенаправит его на страницу успеха, но, конечно, не все это сделают, и проблема в том, что событие наблюдателя, которое я использую, выполняет код только в том случае, если пользователь попадает на эту страницу.(Событие, с которым я работаю, - «checkout_Onepage_Controller_Success_Action»).

Поэтому мне нужно знать, откуда Magento получает информацию о том, был ли платеж PayPal успешным, был ли он отменен или что-то еще.Я просмотрел некоторые файлы контроллеров PayPal в / app / code / core / Mage / Paypal / controllers /, и единственной вещью, которая выглядела близко к возможному решению, была функция successAction () в StandardController.php.Однако эта функция, похоже, срабатывает только тогда, когда покупатель решает вернуться в магазин Magento, поэтому она мне не помогает.

Кто-нибудь имеет опыт решения этой проблемы?

1 Ответ

0 голосов
/ 29 ноября 2011

Я нашел способ обойти проблему: По-видимому, в Magento нет событий, которые бы соответствовали входящим платежам через PayPal. Возможным решением может быть предоставление URL-адреса IPN, который запускает сценарий, как только платеж подтвержден, но мне удалось перенаправить клиента в мой магазин, поэтому мне не пришлось это делать.

В настройках профиля учетной записи PayPal в разделе «Настройки сайта» есть опция «Автоматическое перенаправление». Если этот параметр включен и введен URL-адрес, клиент будет автоматически перенаправлен на этот URL-адрес. Сначала я подумал, что это мне не поможет, потому что, как я сказал, задействовано несколько интернет-магазинов, у каждого из которых будет свой индивидуальный обратный URL, и вы не можете указать более одного. Однако если обратный URL-адрес пропускается при обращении к PayPal, он переопределяет тот, который указан в настройках профиля, и, поскольку модуль Magento делает это по умолчанию, мне просто нужно было ввести случайный URL-адрес в текстовое поле и включить опцию Теперь клиенты перенаправляются обратно в мой магазин при оформлении заказа и оплате через PayPal.

...