перенаправить почтовый запрос из почтового запроса - PullRequest
0 голосов
/ 14 января 2019

пытается отправить запрос почтовой формы на другой сервер.

Я получаю запрос от моего локального хоста, скажем, на POST / deposit

и я хочу позже перенаправить пользователя на платежный сайт с какими-то этими данными

форма, которую я хочу, чтобы пользователь перенаправлял после того, как он отправил: localhost:3000/deposit

<form action='http://testpayment.com/pay' class='redirect_form' method='post'>

<input type='hidden' name='key' value='${data.api_id}'>

<input type='hidden' name='signature' value='${data.api_secret_key}'>

<input type="hidden" name='user_id' value='${data.user_id}'>

<input type="hidden" name="payment_method" value="master_card">

<input type="hidden" name="customproduct" value='[{

"productId":"deposit-${currencyPayway.currency.code}",

"productName":"Test Product",

"productType":"fixedProduct",

"currency":"${currencyPayway.currency.code}",

"amount":${amount}}]'>

<button type='submit'>Pay</button>

</form>

Почтовый маршрут:

app.post('/deposit', function(req, res) {

// some logic applies here

//redirect part ???

});

Есть идеи, как это сделать? Спасибо.

UPDATE: Используйте пример того, что я собираюсь сделать: Допустим, у нас есть несколько поставщиков платежей. В случае любого действия по внесению депозита после применения некоторой логики, нам нужно перенаправить пользователя на сайт платежного провайдера для ввода реквизитов карты / счета, после чего пользователь снова будет перенаправлен обратно на мой веб-сайт платежным провайдером. Теперь front каждый раз пишет собственную логику для всех методов пополнения счета Но я пытаюсь отделить фронт от этого материала и полностью обработать его на бэкенде и унифицировать процесс депозита.

Ответы [ 2 ]

0 голосов
/ 14 января 2019

использование stream.pipe

https://nodejs.org/api/stream.html#stream_readable_pipe_destination_options

app.post('/', (req, res,next) => {
  var request   = require('request');
  var pipe      = req.pipe(request.post('localhost:3000/deposit'));
  var response  = [];

  pipe.on('data',function(chunk) {
    response.push(chunk);
  });

  pipe.on('end',function() {
    var res2 = Buffer.concat(response);
    console.log(res2);
    res.send(res2)
  });
})

0 голосов
/ 14 января 2019

В большинстве случаев, как я знаю, шлюз paymant работает так:

  • вы создадите форму и в качестве URL-адреса укажите URL-адрес вашего поставщика платежных услуг https://secure.paymentprovider.com/deposit
  • вы создадите форму для получения данных от пользователя, отправите на стороне сервера поставщику платежей, в качестве возврата вы должны получить SessionId, какой-то уникальный ключ, а затем перенаправить пользователя, но с помощью метода GET, на URL поставщика платежа. то есть. https://secure.paymentprovider.com/deposit/{token/sessionId}

Вот пример PayU - http://developers.payulatam.com/en/web_checkout/

Может быть, вы можете прикрепить ссылку на API поставщика платежей?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...