2009-11-05 2 views
0

Возможно ли получить мгновенный ответ от транзакции PayPal и оставить ли они свой сайт для оплаты через paypal?PHP Интеграция с Paypal мгновенной обратной связью

Я работаю над сайтом, где пользователю нужно сделать один платеж, поэтому я искал сценарии пожертвований, но большинство из них оплачиваются, и единственный, который я нашел, не дает мгновенного ответа http://www.ibdhost.com/donation/. Если у вас есть связанные скрипты, которые вы использовали до этого, было бы очень полезно, если бы вы могли опубликовать их.

Благодаря

ответ

1

Мое приложение, www.perqworks.com, использует Paypal Website Payment Pro. В API есть понятие Мгновенного уведомления об оплате (IPN). https://cms.paypal.com/us/cgi-bin/?&cmd=_render-content&content_ID=developer/library_code_ipn_code_samples

Как это работает, так как человек платит кредитной карточкой. Paypal отправляет https-ответ на «прослушиватель» на моем сервере. С помощью слушателя вы можете решить продолжить процесс или выбросить ошибку на основе кодов ответов от Paypal.

Документация и песочница помогли, но API Paypal может быть немного сложным, чтобы обернуть голову.

+0

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 –

+0

Я поддерживаю этот ответ. Я только что закончил реализацию своего первого слушателя IPN, и он отлично работает (я заменил fopen на завиток для проверки IPN). Используйте средства Sandbox/Developer PayPal для тестирования. –

1

Для того, чтобы быть уверенным, что вы платите надежно, необходимо для пользователя быть переданы на сайт системы PayPal, в противном случае атаки фишинга типа будет намного проще!

Я не уверен, что вы подразумеваете под мгновенным ответом, у меня сложилось впечатление, что учетные записи торгового агента PayPal могут сообщать продавцу в режиме реального времени, чтобы такие вещи, как регистрационные ключи и их создание и отправка?

+0

Да, я согласен, мгновенный ответ должен быть возможен или эти сайты электронной книги не будут работать ... но я не могу найти бесплатный скрипт или учебник с такой функцией. Спасибо за ответ – Mark

1

Во-первых, взять все это с зерном соли: я активно не использовал 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 и сделать их оплату, происходят две вещи:

  1. пользователь в конечном итоге оттеснили на ваш сайт, с идентификатором транзакции
  2. , когда сделка очищается (хотя это обычно происходит «мгновенно», это может занять несколько дней), Paypal попадает на ваш сайт, асинхронно, полностью отделенный от пользователя к другому предопределенного URL с другим идентификатором (я уверен, что это по-другому)

Во всяком случае , между ними обычно нормально. Обычно мой кодирования рабочий будет что-то вроде:

  1. отправить пользователю прочь к Paypal с уникальным идентификатором «my_defined_transaction_id»
  2. , когда пользователь заканчивает компенсацию, чтобы они вернулись к user_finished.php (Paypal с дать мне ID)
  3. У меня установлены настройки Paypal, так что при расторжении сделки Paypal ударит transaction_cleared.php с параметром GET с указанием «my_defined_transaction_id» (снова Paypal предоставит мне ID).
  4. Paypal обычно удаляет transaction_cleared.php задолго до того, как пользователь доберется до user_finished.php: когда Paypal набирает этот URL-адрес, я отмечаю «my_defined_transaction_id» как «ОК» (после перекрестного обращения к Paypal для обеспечения достоверности).
  5. Когда пользователь заканчивает работу по адресу user_finished.php, я могу перекрестно ссылаться на идентификатор транзакции на Paypal, гарантировать действительность, а затем пометить «my_defined_transaction_id» как «ОК».

Выполнение этого в два этапа позволяет пользователю закрыть браузер без возврата на мой сайт и по-прежнему иметь транзакцию с пометкой «ОК».

Извините ... еще не начали мой кофе, но я надеюсь, что это имеет смысл.

+0

Спасибо за ваш тщательный ответ. Я нашел этот скрипт http://www.micahcarrick.com/04-19-2005/php-paypal-ipn-integration-class.html. Что отлично ... но мне нравится эта идея двойной транзакции id ... но я не могу понять процесс. Не могли бы вы взять меня через это снова? Благодарю. – Mark

+0

@Mark: Мне нужно было бы выкопать старый код для получения информации, когда пользователь будет возвращен на страницу, но я бы начал с ссылки IPN, которую дал Кристофер Альтман ... он детализирует «асинхронный» хотя обычно это делается до того, как пользователь будет возвращен ». Удачи вам. Честно говоря, у меня не было ничего, кроме проблемы с попыткой заставить мои вещи работать в первый раз :) – Narcissus

Смежные вопросы