nodejs - 无法让 PayPal-ipn 工作。PayPal不断返回"INVALID"



我正在尝试使用nodejs模块paypal ipn来验证对paypal的付款。

我将以下格式的数据传递到验证方法。。。

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

每次我使用它时,我都会收到"INVALID"作为Paypal的回复。

你在Paypal上发布了什么?根据中的"示例IPN消息和响应"一段https://cms.paypal.com/uk/cgi-bin/?cmd=_render-内容&content_ID=developer/e_howto_admin_IPNIntro您需要将收到的字符串发回。即

PayPal发送一条消息,类似于下面的消息,价格为19.95美元通过Express Checkout进行的购买:

mc_gross=19.95&protection_requality=合格&address_status=已确认&payer_id=LPLWNMTBWMFAY&税=0.00&address_street=1+Main+St&payment_ date=20%3A12%3A59+Jan+13%2C+2009+PST&payment_status=已完成&charset=windows-1252&address_zip=95131&first_name=测试&ee=0.88&address_country_code=美国&address_name=测试+用户&notify_ version=2.6&custom=&payer_status=已验证&address_country=美国+美国&address_city=圣何塞&数量=1&verify_sign=AtkOfCXbDm2hu0ZELryHFjY-Vb7PAUvS6nMXgysbElEn9v-1XcmSoGtf&payer_email=gpmac_1231902590_per%40paypal.com&txn_id=61E67681CH3238416&payment_type=即时&last_name=用户&address_state=CA&receiver_email=gpmac_1231902686_biz%40paypal.com&payment_fee=0.88&receiver_ id=S8XGHLYDW9T3S&txn_type=express_checkout&项目名称=&mc_currency=美元&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-验证&mc_gross=19.95&protection_requality=合格&address_status=已确认&payer_id=LPLWNMTBWMFAY&税=0.00和&payment_gross=19.95&运费=0.00

因此:在尝试验证之前,不要更改您收到的数据。

最新更新