最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - How to resolve AxiosError "connect ECONNREFUSED 127.0.0.1:XX" in PayPal API integration? - Stack

matteradmin7PV0评论

I'm trying to integrate the PayPal API into my Node.js application, but I'm encountering the following error when using Axios:

AxiosError: connect ECONNREFUSED 127.0.0.1:XX

Explanation and Troubleshooting:

The error message indicates that the connection to 127.0.0.1:XX (localhost, port xx(xx = any number)) is being refused. This suggests a problem with either:

  • PayPal API endpoint: Possible incorrect configuration or a change on PayPal's side.
  • Local server: A server might not be running, or firewall rules might be blocking it.

These are the errors:

node:internal/process/promises:279 triggerUncaughtException(err, true /* fromPromise */); ^ AxiosError: connect ECONNREFUSED 127.0.0.1:xx errored: Error: connect ECONNREFUSED 127.0.0.1:xx at TCPConnectWrap.afterConnect [as onplete] (node:net:1187:16)

Code:

payment.controllers.js

import axios from "axios";
import {PAYPAL_API, PAYPAL_API_CLIENT, PAYPAL_API_SECRET} from '../config'

export const createOrder = async (req, res) => {
    const order = {
        intent : 'CAPTURE',
        purchase_units: [
            {
                amount: {
                    currency_code:"USD",
                    value: '2'
                },
                description: "suscription"
            },
        ],
        application_context: {
            brand_name: "pomodoro.app",
            landing_page: "LOGIN",
            user_action: "PAY_NOW",
            return_url: 'http://localhost:4000/capture-order',
            cancel_url: 'http://localhost:4000/cancel-order'
        }
    };

    const response = await axios.post('${PAYPAL_API}/v2/checkout/orders', order, {
        auth: {
            username: PAYPAL_API_CLIENT,
            password: PAYPAL_API_SECRET
        }
    });

    console.log(response)

    res.send('creating order');
}

export const captureOrder = (req, res) => {
    res.send('capture an order')
}

export const cancelOrder = (req, res) => {
    res.send('cancel an order')
}

package.json

{
  
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.27.2",
 
  },
 
}

What I've Tried:

  • I've verified my PayPal API credentials (Client ID and Secret).
  • I've tried accessing the endpoints http://localhost:3000/create-order and http://localhost:4000/create-order, but neither is working.
  • I've checked, and there doesn't seem to be a server running on port xx (xx = any number).

Specific Question:

How can I debug and fix this connection issue to successfully integrate the PayPal API into my Node.js application?

I'm trying to integrate the PayPal API into my Node.js application, but I'm encountering the following error when using Axios:

AxiosError: connect ECONNREFUSED 127.0.0.1:XX

Explanation and Troubleshooting:

The error message indicates that the connection to 127.0.0.1:XX (localhost, port xx(xx = any number)) is being refused. This suggests a problem with either:

  • PayPal API endpoint: Possible incorrect configuration or a change on PayPal's side.
  • Local server: A server might not be running, or firewall rules might be blocking it.

These are the errors:

node:internal/process/promises:279 triggerUncaughtException(err, true /* fromPromise */); ^ AxiosError: connect ECONNREFUSED 127.0.0.1:xx errored: Error: connect ECONNREFUSED 127.0.0.1:xx at TCPConnectWrap.afterConnect [as onplete] (node:net:1187:16)

Code:

payment.controllers.js

import axios from "axios";
import {PAYPAL_API, PAYPAL_API_CLIENT, PAYPAL_API_SECRET} from '../config'

export const createOrder = async (req, res) => {
    const order = {
        intent : 'CAPTURE',
        purchase_units: [
            {
                amount: {
                    currency_code:"USD",
                    value: '2'
                },
                description: "suscription"
            },
        ],
        application_context: {
            brand_name: "pomodoro.app",
            landing_page: "LOGIN",
            user_action: "PAY_NOW",
            return_url: 'http://localhost:4000/capture-order',
            cancel_url: 'http://localhost:4000/cancel-order'
        }
    };

    const response = await axios.post('${PAYPAL_API}/v2/checkout/orders', order, {
        auth: {
            username: PAYPAL_API_CLIENT,
            password: PAYPAL_API_SECRET
        }
    });

    console.log(response)

    res.send('creating order');
}

export const captureOrder = (req, res) => {
    res.send('capture an order')
}

export const cancelOrder = (req, res) => {
    res.send('cancel an order')
}

package.json

{
  
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.27.2",
 
  },
 
}

What I've Tried:

  • I've verified my PayPal API credentials (Client ID and Secret).
  • I've tried accessing the endpoints http://localhost:3000/create-order and http://localhost:4000/create-order, but neither is working.
  • I've checked, and there doesn't seem to be a server running on port xx (xx = any number).

Specific Question:

How can I debug and fix this connection issue to successfully integrate the PayPal API into my Node.js application?

Share Improve this question edited Mar 18, 2024 at 18:53 pomoworko. asked Jul 19, 2022 at 22:28 pomoworko.pomoworko. 1,0062 gold badges15 silver badges43 bronze badges 4
  • 1 First; It's probably not so smart to expose the api keys on Stackoverflow even though its for a sandbox environment. And second; Can you include the routes/payment.routes file? – rvanlaarhoven Commented Jul 19, 2022 at 22:35
  • Hello, I deleted my API keys thanks for warning me and I included routes/payment.routes – pomoworko. Commented Jul 19, 2022 at 22:40
  • 1 The username & password are still visible in the logs :) – rvanlaarhoven Commented Jul 19, 2022 at 22:51
  • I think now I deleted all the evidence :) (I think) – pomoworko. Commented Jul 19, 2022 at 22:58
Add a ment  | 

1 Answer 1

Reset to default 3

You're defining the paypal url as '${PAYPAL_API}/v2/checkout/orders', which will be used exactly as-is and won't actually replace the PAYPAL_API variable due to the single quotes. You should use back ticks instead as template literals (see more info here) like this:

axios.post(`${PAYPAL_API}/v2/checkout/orders`, ...

Articles related to this article

Post a comment

comment list (0)

  1. No comments so far