尝试条纹订阅时显示 3d 安全(无付款意图)

Display 3d secure when attempting a stripe subscription (without payment intents)

我遵循了 stripe 网站上的“使用元素创建订阅”教程,并且一切正常。但是现在我需要在用户付款之前实现 3d 安全。

但是,我的问题是我没有使用 SetupIntent 或 PaymentIntent。我直接创建订阅,然后显示付款表格(根据教程)。

这是我的订阅创建代码(后端-PHP):

$stripe = new \Stripe\StripeClient(...);
$subscription = $stripe->subscriptions->create([
    'customer' => $customer_id,
    'items' => [[
     'price' => $price_id,
     ]],
     'payment_behavior' => 'default_incomplete',
     'expand' => ['latest_invoice.payment_intent'],
]);

我的前台代码(JS):

stripe.confirmCardPayment(currentClientSecret, {
    payment_method: {
        card: card,
        billing_details: {
        name: "name"
    },
}

我怎样才能要求 3d 安全?

阅读此页面:https://stripe.com/docs/payments/3d-secure#when-to-use-3d-secure 似乎表明我需要 SetupIntent 或 PaymentIntent。

您需要使用作为订阅创建的一部分创建的付款意向(或有试用的设置意向)作为流程的一部分才能进行 3D 安全。这一切都在这里描述:https://stripe.com/docs/billing/subscriptions/elements