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