我试图在我的项目中集成stripe,但我得到“PaymentIntent需要付款方式”。日志中的付款状态代码为200。但在付款 Jmeter 板中,它显示未完成,原因是“客户尚未输入其付款方式。”
下面是我的stripe后台代码
exports.StripePayment = (req, res) => {
const { amount, token } = req.body;
const idempotencyKey = uuid();
return stripe.customers
.create({
email: token.email,
source: token.id,
})
.then((customer) => {
stripe.paymentIntents
.create(
{
amount: amount,
currency: "INR",
payment_method_types: ["card"],
customer: customer.id,
receipt_email: token.email,
shipping: {
name: token.card.name,
address: {
line_1: token.card.address_1,
line_2: token.card.address_2,
city: token.card.address_city,
country: token.card.address_country,
postal_code: token.card.address_zip,
},
},
},
{ idempotencyKey }
)
.then((result) => {
console.log("Result", result);
return res.status(200).json(result);
})
.catch((err) => console.log(err));
});
};
需要帮助修复。先谢谢你了
1条答案
按热度按时间new9mtju1#
这是预期的行为。您共享的代码只是创建一个支付意图,它不会通过其lifecycle来处理意图。
当前您没有提供已创建的付款方式,也没有提供客户提供其付款方式详细信息的方法。这将需要添加,以便Stripe处理付款。
创建支付意向只是Stripe集成的第一步。Stripe提供的这份指南介绍了使用其服务处理支付所需的一切,是构建集成的一个很好的起点:
https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements
该指南将引导您完成需要构建的其余部分,包括为您的客户提供UI以提供其支付方式详细信息,并确认付款意图。