Уведомить URL PayPal - PullRequest
       8

Уведомить URL PayPal

43 голосов
/ 19 мая 2010

Paypal успешно возвращает меня по URL-адресу возврата, который я указал при создании кнопки "Купить сейчас". Но теперь я в замешательстве. Как получить подробности о транзакции, которая произошла на Paypal? И я также хочу установить некоторые значения базы данных в URL-адресе возврата. Но я боюсь, что если мой пользователь, не заплатив PayPal, перейдет по этому адресу, он тоже станет премиум-участником. Как мне это обезопасить?

1 Ответ

78 голосов
/ 25 мая 2010

PayPal возвращает данные обратно на ваш сайт через то, что они называют IPN. На самом деле это просто обратный вызов на указанный вами URL. Вы можете установить этот URL через переменную notify_url , которую вы можете отправить в PayPal.

Пример:

<input name="notify_url" value="http://yourdomain.com/notify_url.php" type="hidden">

notify_url.php в приведенном выше примере получает некоторые переменные POST от PayPal по завершении платежа, даже если клиент никогда не возвращается на ваш сайт.

Некоторые важные переменные , возвращаемые PayPal:

  • mc_gross
  • счет-фактура
  • settle_amount
  • protection_eligibility
  • address_status
  • payer_id
  • налог
  • address_street
  • PAYMENT_DATE
  • payment_status
  • кодировок
  • address_zip
  • mc_shipping
  • mc_handling
  • first_name
  • mc_fee
  • address_country_code
  • EXCHANGE_RATE
  • address_name * * тысяча пятьдесят-одна
  • notify_version
  • settle_currency
  • заказ
  • payer_status
  • бизнес
  • address_country
  • address_city
  • verify_sign
  • payer_email
  • txn_id
  • payment_type

счет возвращается, если вы его установили. Может использоваться как ваш собственный идентификатор заказа / номер транзакции.

txn_id генерируется PayPal и является их собственным идентификатором для транзакции.

Если вы добавляете товары самостоятельно, PayPal также возвращает num_cart_items, item_name1 (item_name2, item_name3), количество1 (количество2, количество3) и т. Д.

Больше чтения на https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables

Конечно, тогда вам все еще нужно решить, как проверить все эти данные и подключить их к клиенту в вашей собственной базе данных, которая у вас, вероятно, есть.

Я сохраняю временный «заказ», прежде чем отправить клиента в PayPal с идентификатором счета-фактуры, идентичным идентификатору, который я отправляю в PayPal в качестве счета. Таким образом, моя страница notify_url.php может проверить мою базу данных на предмет идентификатора счета и сравнить заказ / оплату.

...