我使用Stripe在代码中创建了付款功能。付款效果很好,可以接受付款,但是我想在创建付款后将一些数据引入数组,否则如果返回带有消息的页面失败。
我刚刚创建了函数,但不知道以后该怎么做。
exports.postPayment = async (req,res,next) => {
const loggedinUser = req.session.user._id;
const token = req.body.stripeToken;
const charge = stripe.charges.create({
amount:200,
currency:'usd',
description:'Negative Comment',
source:token
});
}
我应该创建一个then块,还是如何检查是否已付款。现在我处于测试模式,因此所有付款都将被接受。请帮助我,谢谢!
答案 0 :(得分:0)
您不回来。即在响应'res'参数上调用返回方法之一。
注意!第一个被截断的电话进行付款,并立即返回,即付款成功或失败,该代码段将不等待结果,第二个示例将利用一个诺言。
exports.postPayment = async (req,res,next) => {
const loggedinUser = req.session.user._id;
const token = req.body.stripeToken;
const charge = stripe.charges.create({
amount:200,
currency:'usd',
description:'Negative Comment',
source:token
});
return res.status(200).json({message: "It works!"});
}
不确定charges.create是否返回承诺,但是如果这样做,我会这样做:
exports.postPayment = async (req,res,next) => {
const loggedinUser = req.session.user._id;
const token = req.body.stripeToken;
try {
await const charge = stripe.charges.create({
amount:200,
currency:'usd',
description:'Negative Comment',
source:token
});
} catch (e) {
return res.status(500).json({message: "An error occured!", error: e});
}
return res.status(200).json({message: "It works!"});
}