我已经使用stripe create
方法创建了paymentIntent
,并实现了3d安全性来验证支付,但在paymentIntent的状态下是"status": "requires_action",
,所以我已经实现了stripe confirm
方法来确认支付并将状态更改为等于succeeded
。但它并没有确认付款。为什么?
- 这里是确认方法的东西 *
let paymentIntent = req.query.payment_intent;
let retrieve = await stripe.paymentIntents
.retrieve(paymentIntent)
.then((response) => {
return response;
});
if (
typeof retrieve != "undefined" &&
retrieve.status == "requires_confirmation"
) {
let confirmPayment = await stripe.paymentIntents
.confirm(paymentIntent, { payment_method: "pm_card_visa" })
.then((response) => {
return res.send(response);
});
}
当点击API时,得到的响应是状态仍然是requires_action
而不是succeeded
,并且在条带 Jmeter 板中支付仍然是未完成的。
1条答案
按热度按时间hwamh0ep1#
当PaymentIntent的状态为
requires_action
时,这意味着客户需要完成额外的身份验证步骤(如3D Secure)才能确认付款。您应该通过在前端使用Stripe.js或移动的SDK来处理操作,以打开弹出窗口或应用内屏幕,供客户完成身份验证。你可以使用Stripe JS函数handleNextAction。
为了更深入地理解,我建议查看3D Secure authentication上的Stripe文档。