PayPal работает так:
У вас есть форма с кнопкой "купить". При нажатии на нее информация (продукт, цена, имя вашей учетной записи и т. Д.) Отправляется в PayPal.
Затем покупатель соглашается заплатить вам, и после завершения транзакции PayPal отправляет «IPN» (мгновенное уведомление о платеже) на ваш URL-адрес для уведомления - он отправляет данные POST на этот URL-адрес для обработки вашим сервером. Вы отвечаете в PayPal, чтобы спросить, отправили ли они данные POST (а не самозванец), и если они затем ответят, что это реальная транзакция, вы можете передать продукт клиенту. Обратите внимание, что все это происходит в фоновом режиме, пока ваш покупатель все еще находится на веб-сайте PayPal.
Существует последний необязательный этап, который заключается в том, что PayPal возвращает покупателя на ваш сайт. В этом случае они отправляют покупателя обратно на ваш URL-адрес возврата и могут (необязательно) снова возвращать данные транзакции (они называют этот PDT). И вы можете снова проверить с Paypal, является ли это действительной транзакцией, и предоставить загрузку и т. Д. В этот момент.
Самым сложным, что никто не объясняет, является то, что покупатель не перенаправляется на ваш URL-адрес. Т.е. "посетителем" URL-адреса вашего веб-сайта является PayPal, , а не покупатель , так что это не происходит во время сеанса вашего покупателя. Если вы хотите сохранить сеанс в трех частях этого процесса, вам нужно создать средство отслеживания покупателя в вашей форме и передать его PayPal в поле формы, называемом «пользовательский». Эти данные передаются вам обратно в данных IPN и PDT, и вы можете использовать их для восстановления соединения с исходным сеансом пользователя.
Вам действительно нужно реализовать как IPN, так и PDT - если электронная почта IPN не удалась, у вас есть резервная копия PDT. И если пользователь закрывает свой веб-браузер до того, как он будет перенаправлен обратно на страницу PDT, вы отправили письмо с IPN в качестве резервной копии.
Поиск по IPN и PDT, и вы найдете довольно много информации. PayPal также имеет полную документацию и примеры сценариев.