Stripe payments 带直接充电的条带连接意图

Stripe payments 带直接充电的条带连接意图,stripe-payments,Stripe Payments,我正在尝试从收费迁移到与连接的客户的支付意图 我有客户端代码来处理stripe.createPaymentMethod,并将paymentMethodId发送到服务器 我的服务器端代码如下所示: const intent=wait stripe.paymentIntents.create( { 金额:parseInt(金额), 货币, 确认方法:“手动”, 确认:对, 元数据, 付款方式:id, 客户:customerId, 关闭会话:正确, }, { stripe_帐户:restaurantS

我正在尝试从收费迁移到与连接的客户的支付意图

我有客户端代码来处理stripe.createPaymentMethod,并将paymentMethodId发送到服务器

我的服务器端代码如下所示:

const intent=wait stripe.paymentIntents.create(
{
金额:parseInt(金额),
货币,
确认方法:“手动”,
确认:对,
元数据,
付款方式:id,
客户:customerId,
关闭会话:正确,
},
{
stripe_帐户:restaurantStripeAccountId,
},
);
我正在添加
stripe\u账户
作为我的关联客户的账户-
acct\u xxxx

现在测试时,没有3D安全的卡工作正常-
4242…
但是具有3D安全功能的卡,例如来自

我得到:

Error: Your card was declined. This transaction requires authentication

在my
catch
子句中,在它甚至可以开始与客户端的3D安全往返流程之前。

问题在于
off session
参数,当您传递此参数时,意味着您希望在客户不在场的情况下创建一笔费用来授权3DS,因此Stripe将尝试完成交易

这显然会失败,因为该卡需要3DS

在这种情况下,您需要传递
off session=false

要使
off session=true
在将来工作,您需要通过

off-session=false,
setup_future_usage: 'off_session',

希望以上内容对您有所帮助

谢谢。这就解决了它-我的另一个问题是,对于这项工作,我在启动stripe时必须在客户端添加已连接的客户accountId,正如前面提到的,当我在客户端启动stripe时,我需要提供这一点,这是一个动态值,而且可能是偶然的。是否知道这是真正的解决方案,或者是否有一个后端唯一的方法来做到这一点?