Во-первых, взять все это с зерном соли: я активно не использовал Paypal, по крайней мере, один год ...
Вы можете (или может) использовать Paypal без пользователь оставить свой сайт: он назывался что-то вроде «Merchant Services Pro» и имел ежемесячную плату, связанную с ним.
Неплохое время, чтобы спросить, фактически, с Paypal, объявив вчера об открывшемся API (см. http://www.pcworld.com/businesscenter/article/181382/paypal_introduces_open_api_to_put_payments_into_apps.html).
В любом случае, насколько известно «мгновенное» уведомление: это технически не происходит. Когда пользователь отталкивается в Paypal и сделать их оплату, происходят две вещи:
- пользователь в конечном итоге оттеснили на ваш сайт, с идентификатором транзакции
- , когда сделка очищается (хотя это обычно происходит «мгновенно», это может занять несколько дней), Paypal попадает на ваш сайт, асинхронно, полностью отделенный от пользователя к другому предопределенного URL с другим идентификатором (я уверен, что это по-другому)
Во всяком случае , между ними обычно нормально. Обычно мой кодирования рабочий будет что-то вроде:
- отправить пользователю прочь к Paypal с уникальным идентификатором «
my_defined_transaction_id
»
- , когда пользователь заканчивает компенсацию, чтобы они вернулись к
user_finished.php
(Paypal с дать мне ID)
- У меня установлены настройки Paypal, так что при расторжении сделки Paypal ударит
transaction_cleared.php
с параметром GET с указанием «my_defined_transaction_id
» (снова Paypal предоставит мне ID).
- Paypal обычно удаляет
transaction_cleared.php
задолго до того, как пользователь доберется до user_finished.php
: когда Paypal набирает этот URL-адрес, я отмечаю «my_defined_transaction_id
» как «ОК» (после перекрестного обращения к Paypal для обеспечения достоверности).
- Когда пользователь заканчивает работу по адресу
user_finished.php
, я могу перекрестно ссылаться на идентификатор транзакции на Paypal, гарантировать действительность, а затем пометить «my_defined_transaction_id
» как «ОК».
Выполнение этого в два этапа позволяет пользователю закрыть браузер без возврата на мой сайт и по-прежнему иметь транзакцию с пометкой «ОК».
Извините ... еще не начали мой кофе, но я надеюсь, что это имеет смысл.
IPN - это путь, поскольку все транзакционные данные отправляются туда после завершения транзакции (даже возмещения). - https://www.paypal.com/ipn - https://cms.paypal.com/cgi-bin/marketingweb?cmd=_render-content&content_ID=developer/e_howto_admin_IPNIntro - https: //cms.paypal .com/cms_content/US/en_US/files/developer/IPNGuide.pdf –
Я поддерживаю этот ответ. Я только что закончил реализацию своего первого слушателя IPN, и он отлично работает (я заменил fopen на завиток для проверки IPN). Используйте средства Sandbox/Developer PayPal для тестирования. –