Ошибка прокси: не удалось запрос / оплата прокси от localhost: 3000 до https://localhost: 5000 / - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь создать приложение для чередующихся платежей, используя reactJS и expressJS, получаю эту ошибку:

Ошибка прокси: не удалось запрос / платеж прокси от localhost : От 3000 до https://localhost: 5000 /
См. https://nodejs.org/api/errors.html#errors_common_system_errors для получения дополнительной информации (EPROTO)

В упаковке. json файл Я установил прокси как -

"proxy": "https://localhost:5000"

В моем компоненте реакции у меня есть -

const onToken = token => {
    axios({
      url: "payment",
      method: "post",
      data: {
        amount: priceForStripe,
        token: token
      }
    })
      .then(response => {
        alert("succesful payment");
      })
      .catch(error => {
        console.log("Payment Error: ", error);
        alert(
          "There was an issue with your payment! Please make sure you use the provided credit card."
        );
      });
  };

На моем сервере. js У меня есть -

const stripe = require("stripe")("sk_test_...");
app.post("/payment", (req, res) => {
  const body = {
    source: req.body.token.id,
    amount: req.body.amount,
    currency: "usd"
  };

  stripe.charges.create(body, (stripeErr, stripeRes) => {
    if (stripeErr) {
      res.status(500).send({ error: stripeErr });
    } else {
      res.status(200).send({ success: stripeRes });
    }
  });
});

всякий раз, когда я отправляю платеж, я сталкиваюсь с ошибкой -

image

Я пробовал все методы, связанные здесь , но не могу решить эту проблему. От всего сердца благодарю, если кто-нибудь объяснит какое-либо решение этой проблемы.

Ответы [ 3 ]

0 голосов
/ 09 марта 2020

Как уже упоминалось @CherryDT, сначала я установил прокси на "proxy": "http://localhost:5000". Затем я изменяю свой внутренний код, как предложил @Greg M -

app.post("/payment", (req, res) => {
  stripe.customers
    .create({
      email: req.body.email, // customer email, which user need to enter while making payment
      source: req.body.token.id // token for the given card
    })
    .then(customer =>
      stripe.charges.create({
        // charge the customer
        amount: req.body.amount,
        description: "Sample Charge",
        currency: "usd",
        customer: customer.id
      })
    )
    .then(charge => res.status(200).send({ success: "success" }));
});

Вот и все. Мой способ оплаты работает отлично.

0 голосов
/ 09 марта 2020

Поскольку ваш бэкэнд работает нормально без чередования, ошибка 500 указывает на то, что чередование является проблемой.

Это относится к информации, которую вы отправляете в тексте запроса на оплату полос. Я думаю, что вам не хватает customer.id.

В этом сообщении arjun php .com / node-stripe- express - js показывает запрос charge.create как

{ amount, 
  description: "Sample Charge", 
    currency: "usd", 
    customer: customer.id 
}
0 голосов
/ 09 марта 2020

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

Похоже, что по умолчанию Ax ios кодирует json для вас (но вы должны дважды проверить запрос ). Чтобы получить доступ к JSON закодированным данным тела запроса в Express, вам нужно использовать промежуточное ПО body-parser .

См. Этот пример для примера: Как мне потреблять данные JSON POST в приложении Express

...