nodejs - Не удается заставить PayPal-IPN работать. Paypal продолжает возвращать "НЕДЕЙСТВИТЕЛЬНО" - PullRequest
1 голос
/ 30 марта 2012

Я пытаюсь использовать модуль nodejs paypal-ipn для проверки платежа, произведенного PayPal.

Я передаю данные метода проверки в следующем формате ...

{ tx: '60R52218GS3878125',
  st: 'Completed',
  amt: '0.01',
  cc: 'GBP',
  cm: '',
  item_number: '' }

Каждый раз, когда я его использую, я получаю «НЕВЕРНЫЙ» в качестве ответа от Paypal.

1 Ответ

0 голосов
/ 01 апреля 2013

Что вы отправляете обратно в Paypal? В соответствии с параграфом «Пример сообщения и ответа IPN» в https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNIntro вам нужно отправить ту же самую строку назад, которую вы получили. То есть

PayPal отправляет сообщение, аналогичное следующему, за 19,95 $ покупка совершена Express Checkout:

mc_gross = 19,95 & protection_eligibility = Приемлемые & address_status = подтверждено & payer_id = LPLWNMTBWMFAY и налог = 0,00 & address_street = 1 + Main + St & PAYMENT_DATE = 20% 3A12% 3A59 + Ян + 13% 2C + 2009 + PST & payment_status = Завершена & кодировок = окна-1252 & address_zip = 95131 & first_name = Test & mc_fee = 0,88 & address_country_code = US & address_name = Test + Пользователь & notify_version = 2,6 и пользовательские = & payer_status = проверено и address_country = United + States & address_city = San + Jose и количество = 1 & verify_sign = AtkOfCXbDm2hu0ZELryHFjY-Vb7PAUvS6nMXgysbElEn9v-1XcmSoGtf & payer_email = gpmac_1231902590_per% 40paypal.com & txn_id = 61E67681CH3238416 & payment_type = мгновенная & last_name = User & address_state = CA & receiver_email = gpmac_1231902686_biz% 40paypal.com & payment_fee = 0,88 & receiver_id = S8XGHLYDW9T3S & txn_type = express_checkout & item_name = & mc_currency = USD & ITEM_NUMBER = & residence_country = US & test_ipn = 1 & handling_amount = 0,00 & transaction_subject = & payment_gross = 19,95 & доставка = 0,00

Прежде чем вы сможете доверять содержанию сообщения, вы должны сначала убедитесь, что сообщение пришло от PayPal. Чтобы проверить сообщение, вы должен отправить обратно содержимое в точном порядке, в котором они были получены и добавьте команду _notify-validate следующим образом:

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_notify-validate&mc_gross=19.95&protection_eligibility=Eligible&address_status=confirmed&payer_id=LPLWNMTBWMFAY&tax=0.00&...&payment_gross=19.95&shipping=0.00

Итак: не изменяйте данные, которые вы получили, прежде чем пытаться проверить.

...