Express JS Redirect после обнаружения ошибки карты с помощью Stripe API - PullRequest
0 голосов
/ 14 января 2019

Я использую Express для обработки платежей Stripe на целевой странице.

В случае неудавшегося платежа они по-прежнему перенаправляются на «страницу успеха», а их следует перенаправлять на страницу неудавшегося платежа. Я пытался сделать это двумя разными способами: либо с помощью chooseRedirects(), либо с помощью перенаправления после обнаружения ошибки, но ни один из них, похоже, не эффективен.

app.post('/charge', (req,res) => {
  var ctx = req.webtaskContext;
  var STRIPE_SECRET_KEY = ctx.secrets.STRIPE_SECRET_KEY;

function handleRedirects(){
    if (req.query.sku == "sku_123" && res.status(200)) {
         res.redirect(301, 'https://payment-succeeded.url')
    } else {
      res.redirect(301, 'https://payment-failed.url')
    }
}

  stripe(STRIPE_SECRET_KEY).customers.create({
    email: req.body.stripeEmail,
    source: req.body.stripeToken
  })
  .then(customer =>
    stripe(STRIPE_SECRET_KEY).charges.create({
      amount: req.query.amount,
      currency: req.query.currency,
      customer: customer.id,
      description: req.query.description
    }))
  .then(charge => res.send(charge))
  .catch(err => {
    console.log("Error:", err);
    res.redirect(301, 'https://payment-failed.url')
  })
  .then(
        handleRedirects()
  );
});
app.listen(8000);
...