PayPal Adaptive Payments Issue in Node.js

I can’t understand what’s going on for life. I'm just trying to make a basic PayPal Adaptive Payments API call, a Pay call. I am trying to achieve this with node.js. I can make successful calls using curl , but node just refuses to work. I keep getting the error message 'Invalid request: {0}' errorId 580001 . I searched for a solution for a long time, and although many people had similar problems, their problems were different from mine, and therefore their solutions did not work.

Any help you can offer is appreciated by MUCH .

Here is the answer I keep getting (prettified):

 { responseEnvelope: { timestamp: '2012-11-05T03:50:08.216-08:00', ack: 'Failure', correlationId: 'b1dbb6fea8378', build: '4110101' }, error: [ { errorId: '580001', domain: 'PLATFORM', subdomain: 'Application', severity: 'Error', category: 'Application', message: 'Invalid request: {0}' } ] } 

Here is my node code: (Note: I am using the request module: https://github.com/mikeal/request )

 request = require 'request' body = JSON.stringify actionType: "PAY" senderEmail: " happy_1349101075_biz@onehappystudent.com " receiverList: receiver: [ email: " luke_1346604373_biz@onehappystudent.com " amount: "1.00" ] currencyCode: "USD" feesPayer: "EACHRECEIVER" memo: "This is a test" cancelUrl: "http://cancelurl" returnUrl: "http://returnUrl" ipnNotificationUrl: "http://your_ipn_notification_url" requestEnvelope: errorLanguage: "en_US" console.log body console.log request url: 'https://svcs.sandbox.paypal.com/AdaptivePayments/Pay' headers: "X-PAYPAL-SECURITY-USERID": "happy_1349101075_biz_api1.onehappystudent.com" "X-PAYPAL-SECURITY-PASSWORD": "1349101103" "X-PAYPAL-SECURITY-SIGNATURE": "AFcWxV21C7fd0v3bYYYRCpSSRl31Avw12OuF33eJo9IbQpXMS6wrOp1." "X-PAYPAL-REQUEST-DATA-FORMAT": "JSON" "X-PAYPAL-RESPONSE-DATA-FORMAT": "JSON" "X-PAYPAL-APPLICATION-ID": "APP-80W284485P519543T" "Content-Type": "application/json" body: body , (err, res, bod) -> console.log bod 

Here's the output from running the above code:

 {"actionType":"PAY","senderEmail":" happy_1349101075_biz@onehappystudent.com ","receiverList":{"receiver":[{"email":" luke_1346604373_biz@onehappystudent.com ","amount":"1.00"}]},"currencyCode":"USD","feesPayer":"EACHRECEIVER","memo":"This is a test","cancelUrl":"http://cancelurl","returnUrl":"http://returnUrl","ipnNotificationUrl":"http://your_ipn_notification_url","requestEnvelope":{"errorLanguage":"en_US"}} { readable: true, writable: true, headers: { 'X-PAYPAL-SECURITY-USERID': 'happy_1349101075_biz_api1.onehappystudent.com', 'X-PAYPAL-SECURITY-PASSWORD': '1349101103', 'X-PAYPAL-SECURITY-SIGNATURE': 'AFcWxV21C7fd0v3bYYYRCpSSRl31Avw12OuF33eJo9IbQpXMS6wrOp1.', 'X-PAYPAL-REQUEST-DATA-FORMAT': 'JSON', 'X-PAYPAL-RESPONSE-DATA-FORMAT': 'JSON', 'X-PAYPAL-APPLICATION-ID': 'APP-80W284485P519543T', 'Content-Type': 'application/json', host: 'svcs.sandbox.paypal.com', 'content-length': 409 }, body: <Buffer 7b 22 61 63 74 69 6f 6e 54 79 70 65 22 3a 22 50 41 59 22 2c 22 73 65 6e 64 65 72 45 6d 61 69 6c 22 3a 22 68 61 70 70 79 5f 31 33 34 39 31 30 31 30 37 35 ...>, callback: [Function], pool: {}, dests: [], __isRequestRequest: true, _callback: [Function], _events: { error: [Function], complete: [Function], pipe: { [Function: g] listener: [Function] } }, uri: { protocol: 'https:', slashes: true, host: 'svcs.sandbox.paypal.com', hostname: 'svcs.sandbox.paypal.com', href: 'https://svcs.sandbox.paypal.com/AdaptivePayments/Pay', pathname: '/AdaptivePayments/Pay', path: '/AdaptivePayments/Pay', port: 443 }, _redirectsFollowed: 0, maxRedirects: 10, followRedirect: true, followAllRedirects: false, redirects: [], setHost: true, originalCookieHeader: undefined, _jar: undefined, port: 443, host: 'svcs.sandbox.paypal.com', clientErrorHandler: [Function], _parserErrorHandler: [Function], path: '/AdaptivePayments/Pay', httpModule: { Server: { [Function: Server] super_: [Object] }, createServer: [Function], globalAgent: { options: {}, requests: {}, sockets: {}, maxSockets: 5, _events: [Object], createConnection: [Function: createConnection] }, Agent: { [Function: Agent] super_: [Object] }, request: [Function], get: [Function] }, agentClass: { [Function: Agent] super_: { [Function: Agent] super_: [Function: EventEmitter], defaultMaxSockets: 5 } }, agent: { options: {}, requests: {}, sockets: {}, maxSockets: 5, _events: { free: [Function] }, createConnection: [Function: createConnection] } } {"responseEnvelope":{"timestamp":"2012-11-05T03:50:08.216-08:00","ack":"Failure","correlationId":"b1dbb6fea8378","build":"4110101"},"error":[{"errorId":"580001","domain":"PLATFORM","subdomain":"Application","severity":"Error","category":"Application","message":"Invalid request: {0}"}]} 

Here's a successful curl :

 curl -s --insecure \ -H "X-PAYPAL-SECURITY-USERID: happy_1349101075_biz_api1.onehappystudent.com" \ -H "X-PAYPAL-SECURITY-PASSWORD: 1349101103" \ -H "X-PAYPAL-SECURITY-SIGNATURE: AFcWxV21C7fd0v3bYYYRCpSSRl31Avw12OuF33eJo9IbQpXMS6wrOp1." \ -H "X-PAYPAL-REQUEST-DATA-FORMAT: JSON" \ -H "X-PAYPAL-RESPONSE-DATA-FORMAT: JSON" \ -H "X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T" \ -H "host: svcs.sandbox.paypal.com" \ https://svcs.sandbox.paypal.com/AdaptivePayments/Pay -d '{ "actionType":"PAY", "senderEmail":" happy_1349101075_biz@onehappystudent.com ", "receiverList":{ "receiver":[{ "email":" luke_1346604373_biz@onehappystudent.com ", "amount":"1.00" }] }, "currencyCode":"USD", "feesPayer":"EACHRECEIVER", "memo":"This is a test", "cancelUrl":"http://cancelurl", "returnUrl":"http://returnUrl", "ipnNotificationUrl":"http://your_ipn_notification_url", "requestEnvelope":{ "errorLanguage":"en_US" } }' 

And here is the answer: (useful for your convenience)

 { responseEnvelope: { timestamp: '2012-11-05T03:40:10.613-08:00', ack: 'Success', correlationId: 'abaf5b13c5515', build: '4110101' }, payKey: 'AP-4B1870921M506553S', paymentExecStatus: 'COMPLETED' } 

Again, any help you can offer is appreciated by MUCH .

+4
source share
2 answers

God, I feel stupid ... I missed one line ...

 method: 'POST' 

Lesson Learned - Don't Be Obsolete

(if perhaps you have a large supply of coffee)

+3
source

Not sure if you inserted your code correctly, but this code works for me - see if you can find the difference:

 var request = require('request'); body = JSON.stringify( {actionType: "PAY", senderEmail: " happy_1349101075_biz@onehappystudent.com ", receiverList: { receiver: [{ email: " luke_1346604373_biz@onehappystudent.com ", amount: "1.00" }]}, currencyCode: "USD", feesPayer: "EACHRECEIVER", memo: "This is a test", cancelUrl: "http://cancelurl", returnUrl: "http://returnUrl", ipnNotificationUrl: "http://your_ipn_notification_url", requestEnvelope: { errorLanguage: "en_US" } }) console.log(body) request.post({ headers: {"X-PAYPAL-SECURITY-USERID": "happy_1349101075_biz_api1.onehappystudent.com", "X-PAYPAL-SECURITY-PASSWORD": "1349101103", "X-PAYPAL-SECURITY-SIGNATURE": "AFcWxV21C7fd0v3bYYYRCpSSRl31Avw12OuF33eJo9IbQpXMS6wrOp1.", "X-PAYPAL-REQUEST-DATA-FORMAT": "JSON", "X-PAYPAL-RESPONSE-DATA-FORMAT": "JSON", "X-PAYPAL-APPLICATION-ID": "APP-80W284485P519543T", "Content-Type": "application/json"}, url: 'https://svcs.sandbox.paypal.com/AdaptivePayments/Pay', body: body }, function(error, response, body){ console.log(body); }); 
+3
source

Source: https://habr.com/ru/post/1444099/


All Articles