Как извлечь данные из ответа на URL обратного вызова? - PullRequest
1 голос
/ 19 января 2020

Мне нужно интегрировать оплату за услугу бронирования, которую я сейчас разрабатываю.

Я использую React. js в качестве внешнего интерфейса и NodeJS / Express в качестве внутреннего.

У меня есть настроить маршрут на моем express сервере, / payment, и в / payment route я в основном беру объект данных с некоторыми данными о клиентах, а затем отправляю данные с запросом ax ios POST в / apiURL, Затем я получаю ответ и отправляю другой запрос POST в / apiURL / responseID, а затем компания API рекомендует мне настроить URL обратного вызова (который должен быть параметром данных при первом вызове), на который API будет отправлять обратную передачу. запрос, когда клиент выполнил платеж.

Итак, мой вопрос, как извлечь эти данные ответа на обратный вызов? Можно ли как-то его дождаться и извлечь по тому же маршруту?

Поскольку я использую React, я должен создавать компоненты, которые отвечают на URL-адреса обратного вызова с помощью React Router?

Или мне нужно создать серверную переменную, которую я могу считывать и изменять при обратном вызове приходит? В первый раз я имею дело с более крупным проектом, подобным этому, и я не совсем уверен, как с этим справиться *. *

/ Приветствия

Это рассматриваемый маршрут

server.express.post("/payment", async (req, res) => {
  // payment header
  const paymentHeader = {...}

  const body = {
    "payment": {
      ...
      "urls": {
        "hostUrls": ["https://example.com"],
        "paymentUrl": "http://example.com/perform-payment",
        "completeUrl": "https://example.com/payment-completed",
        "cancelUrl": "https://example.com/payment-canceled",
        "callbackUrl": "https://example.com/payment-callback",
        "logoUrl": "https://example.com/logo.png",
        "termsOfServiceUrl": "https://example.com/terms.pdf"
      },
      ...
    }
  }

  axios
    .post(
      `${process.env.PAYMENT_URL}/psp/swish/payments`,
      body,
      paymentHeader
    )
    .then(response => {
      console.log('2d post /payment')
      axios.post(`${process.env.PAYMENT_URL}${response.data.payment.id}/sales`, {
        "transaction": {
          "msisdn": "+46739000001"
        },
        paymentHeader

      }
      ).then(response => console.log(response.data)).catch(err => console.log(err.response.data))
    })
    .catch(err => console.log(err.response.data));
});

1 Ответ

0 голосов
/ 19 января 2020

Я не уверен, правильно ли я понял вопрос, но думаю, что это может вам помочь:

axios.get('/your-backend-api')
        .then( (response) => {
            console.log("response", response.data);
            //Do what you want with response after server answered
        })
        .catch( (error) => {
            console.log(error);
            //server had a problem 
        });  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...