从发布请求中重定向发布请求

时间:2019-01-14 13:35:31

标签: node.js express

尝试将邮寄表格请求发送到另一台服务器。

我从本地主机收到发帖请求,可以在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 ???

});

任何想法该怎么做? 谢谢。

更新: 我要做什么的用例: 可以说我们有很多付款服务提供商。在采用某种逻辑后,以任何方式进行存款操作时,我们需要将用户重定向到支付提供商的网站以输入卡/帐户详细信息,然后用户将被支付提供商再次重定向到我的网站。现在,front每次都为所有存款方法编写自定义逻辑。但是我试图将前端与这些东西分离开来,并在后端完全处理并统一存款流程。

2 个答案:

答案 0 :(得分:0)

在我所知的大多数情况下,paymant网关的工作方式如下:

  • 您将创建一个表单,并在其中输入您的付款服务提供商URL https://secure.paymentprovider.com/deposit
  • 您将创建一个从用户那里获取数据的表单,然后在服务器端发送给Payment Provider,作为回报,您应该获取一个SessionId,某种唯一键,然后将用户重定向,但使用GET方法将其发送到Payment Provivder url即。 https://secure.paymentprovider.com/deposit/ {token / sessionId}

以下是PayU示例-http://developers.payulatam.com/en/web_checkout/

也许您可以将链接附加到Payment Provider API?

答案 1 :(得分:0)

使用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)
  });
})