Paypal обработка IPN после оплаты - PullRequest
0 голосов
/ 25 сентября 2011

У меня есть контроллер IPN, который проверяет IPN, а затем проверяет некоторые поля в соответствии с этой статьей

После того, как пользователь нажал кнопку «оплатить» на веб-сайте PayPal, ipn отправил на мой ipn controller и одновременно пользователь перенаправился обратно на мой веб-сайт (after paypal controller) с веб-сайта PayPal.

Но проблема в том, что у моего IPN controller недостаточно времени, чтобы завершить всю логику, и пользователь зашел на мой сайт на after paypal controller до завершения обработки IPN. Поэтому я не могу сказать пользователю, была ли какая-либо ошибка или она была успешной.

Может быть, кто-то может поделиться своим опытом с этим? Что я могу сделать? Я бы перенаправил пользователя с PayPal обратно на мой сайт только после завершения обработки ipn, чтобы я мог сказать пользователю, успешно он или нет и т. Д.

На моем after paypal controller я хочу проверить, была ли обработка ipn успешной, и затем отобразить соответствующее сообщение.

Есть мысли?

1 Ответ

0 голосов
/ 23 октября 2011

IPN является отдельным от опыта конечных пользователей.

Вам необходимо 3 страницы / действия: одна для, если PayPal сказал «платеж подтвержден», другая для, если PayPal сказал «Платеж не прошел» - эти 2 страницы ничего не значат,пользователь может взломать сайт, чтобы увидеть эти страницы, они просто там, чтобы сообщить пользователю, что происходит.

Третья страница / действие для IPN, это просто слушатель, который ждет ответа PayPal.Получив ответ, проверьте его, чтобы убедиться, что все в порядке:

  • Убедитесь, что ваш адрес электронной почты оплачен
  • Убедитесь, что цена правильная
  • Обновляет вашу базу данных с "Оплачено!"marker, yada yada

После этого вы можете иметь простую привязку к («Платно!»), которая обновляется, когда пользователь 'postsback' или ajax могут сделать это асинхронно.

- В заключение я искренне пытаюсь выяснить, как обрабатывать / тестировать IPN, и ваш явно неисследованный вопрос потратил впустую мое время.Проведите исследование, человек.

...