Stripe paymentelement 是否为使用 paymentIntent 和 setupIntent 创建的 clientsecret 显示不同的付款选项

问题描述 投票:0回答:1

我有 2 个关于付款的流程:

  1. 使用从 paymentIntent 创建的付款元素向客户收费。
  2. 我有另一个流程,我只接受使用 setupIntent 的客户的付款方式。

在第一个流程中,我遵循以下步骤:

  1. 使用 customerId 和 amount 创建 paymentIntent
const paymentIntent = await stripeKey.paymentIntents.create({
            customer: customerId,
            setup_future_usage: 'off_session',
            amount: amount,
            currency: 'usd',
            metadata : {
                tenantId :  tenantId,
                customerId : customerId,
                transaction_from : transaction_from,
            },
             automatic_payment_methods: {
                enabled: true,
                allow_redirects: 'always'
             }
        });
  1. 使用 paymentIntent 密钥显示 paymentelement
      const appearance = {
        theme: 'stripe',
          };

      const options = {
        clientSecret: paymentIntent.client_secret,
        appearance,
      };

      elements = stripe.elements(options);
      paymentElement = elements.create("payment");
      paymentElement.mount("#payment");  
  1. 这显示付款元素如下:

使用 paymentIntent 创建的支付元素

在第二个流程中,我遵循以下步骤:

  1. 创建 setupIntent
const setupIntent = await stripe.setupIntents.create({

      customer: customerId,
      metadata: {clientid : tenantId},

        automatic_payment_methods: {
            enabled: true,
            allow_redirects: 'always'
        }
    });
  1. 使用 setupIntent 密钥显示 paymentelement
      const appearance = {
          theme: 'stripe',
        };
    
        const options = {
          clientSecret: setupIntent.client_secret,
          appearance,
        };
        
    
        elements = stripe.elements(options);
    
        const paymentElement = elements.create("payment");
    
        paymentElement.mount("#paymentMethod"); 
  1. 这显示付款元素如下:

使用 setupIntent 创建的支付元素

这里的问题是两个支付元素没有显示相同的支付方式,这导致不一致。我需要采取哪些额外步骤才能在两个付款元素上显示相同的付款方式?

stripe-payments stripes stripe-payment-intent
1个回答
0
投票

此行为是预期的,因为某些付款方式指定用于付款用途,而不是用于设置用途。例如,“立即购买,稍后付款”等付款方式(例如 Klarna)等某些选项可能无法用于安装程序。 BNPL

© www.soinside.com 2019 - 2024. All rights reserved.