Как обеспечить интеграцию PayPal для сайта - PullRequest
1 голос
/ 21 сентября 2011

В прошлом я использовал PayPal для продажи товаров через мой веб-сайт (например, членство), но мне всегда приходилось проверять через PayPal, действительно ли пользователь купил членство (например), прежде чем я мог назначить его на его / ее счет,Теперь мне было интересно, есть ли способ, которым я могу поместить кнопку покупки PayPal на мою веб-страницу, чтобы (например) купить членство, а затем, как только пользователь заплатит, ему автоматически назначат членство на моем сайте (например, есть страница).purchase_result.php, который назначает членство, но ТОЛЬКО если пользователь действительно купил его через PayPal).Как я могу убедиться, что пользователь действительно купил товар через PayPal на странице возврата на моем сайте?

Заранее спасибо, Skyfe.

Кстати, я надеюсь, что мой вопрос можно понять

1 Ответ

8 голосов
/ 22 сентября 2011

Вы будете получать уведомления о мгновенных платежах PayPal, чтобы получать уведомления от сервера к серверу от PayPal, которые впоследствии можно будет проверить и использовать для обновления базы данных.

IPN работает следующим образом:

  1. Вы создаете PayPal и получаете "notify_url". Значением этого параметра будет полный URL-адрес сценария на вашем сервере, который называется «сценарий IPN» или «обработчик IPN».

Вы можете указать обработчик IPN следующим образом для стандарта платежей через веб-сайт <input type="hidden" name="notify_url" value="http://blah.com/ipn.php

Для Express Checkout или платежей через веб-сайт Pro просто включите следующее в вызов API SetExpressCheckout / DoExpressCheckoutPayment или DoDirectPayment соответственно. NOTIFYURL=http://blah.com/ipn.php

  1. Покупатель совершает транзакцию через PayPal
  2. Как только покупатель завершит транзакцию, он / она может закрыть браузер или вернуться на ваш сайт
  3. Как только транзакция будет принята и обработана PayPal, PayPal отправит уведомление на http://blah.com/ipn.php
  4. Вам нужно взять все данные POST, отправленные этому сценарию, и вернуть их обратно к https://www.paypal.com/cgi-bin/webscr?cmd=_notify-validate
  5. Если отправленные вами данные совпадают с данными, отправленными вам PayPal, возвращается ответ «ПРОВЕРЕНО».
  6. Если ответ ПРОВЕРЕН, именно в этот момент вы будете искать соответствующую транзакцию / покупателя на своем конце и соответствующим образом обновлять свою базу данных.

Некоторые примеры кода и документации для PayPal IPN доступны по адресу https://www.paypal.com/ipn/
Кроме того, некоторые советы по созданию безопасного сценария IPN доступны по адресу https://www.x.com/developers/community/blogs/ppmtsrobertg/securing-your-instant-payment-notification-ipn-script

Примечание. Если вы хотите включить в транзакцию любые пользовательские данные, которые вы можете прочитать позже, используйте «custom».
<input type="hidden" name="custom" value="xxxxx">
Это также будет возвращено в данных POST IPN, отправленных PayPal.

...