пятница, 12 августа 2011 г.

Настраиваем IPN для работы с PayPal

Пришлось порядком повозиться, чтобы заставить сайт мгновенно узнавать о том, что пользователь оплатил заказ. Работаем с PayPal напрямую, без сайтов-посредников, возвращение пользователя на наш сайт также не требуется. PayPal сам отправляет нам post-запрос с кучей заголовков, как только платеж совершен.

Вот здесь понятно описано, с примером для c# http://www.codeproject.com/KB/aspnet/paypal_c_aspnet.aspx#IPN

Вкратце:
1. Нам приходит post-запрос.
2. Сохраняем его и отправляем обратно на PayPal, чтобы проверить, действительно ли платеж совершен, или это хак.
3. Получаем ответ от PayPal - Verified - если платеж совершен, или Invalid, если такого платежа не было. Ну и обрабатываем данные.

Свои параметры для пост-обработки заказа передаем с формы через параметр custom.
<input type="hidden" name="custom" value="our params">


При обработке ответа сервера не забываем проверить адресата платежа, сумму и валюту.

Для тестов регистрируемся на Sandbox.paypal.com, создаем тестового продавца и покупателя, и вперёд.

2 комментария:

  1. Большое Вам спасибо за разъяснение "на пальцах", како но работает и полезную ссылку.
    Название блога меня просто покорило =)

    ОтветитьУдалить
    Ответы
    1. Пожалуйста! Я рада, что кому-то мои записи помогли :)

      Удалить