我正在尝试将direct-charge flow与已连接客户的费用从收费转移到支付方式。
我有处理stripe.createPaymentMethod
的客户端代码并将付款方式ID发送到服务器。
我的服务器端代码如下:
const intent = await stripe.paymentIntents.create(
{
amount: parseInt(amount),
currency,
confirmation_method: 'manual',
confirm: true,
metadata,
payment_method: id,
customer: customerId,
off_session: true,
},
{
stripe_account: restaurantStripeAccountId,
},
);
我将stripe_account
添加为关联客户的帐户-acct_xxxx
现在,在测试时,没有3D安全保护的卡可以正常工作-42424242...
但具有here的4000000000003220
这样的3D安全卡
我明白了:
Error: Your card was declined. This transaction requires authentication
在我的catch
子句中,它甚至可以与客户端开始我的3D安全往返流程。
答案 0 :(得分:1)
问题是off-session
参数,当您传递此参数时,这意味着您要在不存在客户授权3DS的情况下创建费用,因此Stripe将尝试完成交易。
这显然会失败,因为该卡需要3DS。
在这种情况下,您需要通过off-session=false
。
要使off-session=true
将来能正常运行,您需要通过
Setup
这张卡
off-session=false,
setup_future_usage: 'off_session',
希望以上帮助