使用Stripe API捕获卡错误后进行Express JS重定向

时间:2019-01-14 18:14:37

标签: express stripe-payments

我正在使用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);

0 个答案:

没有答案