繁体   English   中英

如何使用“分条付款方式”提供符合SCA要求的帐单明细?

[英]How can I provide billing details for SCA compliance using Stripe Payment Intents?

我正在按照“ 付款方式快速入门”中的说明使用“条带付款方式”。 如文档所示:

为确保您的集成已支持SCA,请确保始终向stripe.handleCardPayment呼叫提供客户的姓名,电子邮件,账单地址和收货地址(如果有)。

const stripe = Stripe('pk_test_lolnothisisnotreal', {
  betas: ['payment_intent_beta_3']
})

根据链接中的handleCardPayment文档 ,我以指定的格式提供帐单详细信息

// https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment
const {paymentIntent, error} = await stripe.handleCardPayment(clientSecret, cardElement, {
  // https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details
  payment_method_data: {
    billing_details: {
      address: {
        line1: cardholderAddressLine1.value,
        line2: cardholderAddressLine2.value,
        city: cardholderAddressCity.value,
        state: cardholderAddressState.value,
        country: cardholderAddressCountry.value,
        postal_code: cardholderAddressPostalCode
      },
      name: cardholderName.value,
      email: cardholderEmail.value,
      phone: cardholderPhone.value
    }
  }
})

但是handleCardPayment()返回:

Received unknown parameter: source_data[billing_details]

如何使用“分条付款方式”提供符合SCA要求的帐单明细?

该代码正在传递payment_method_data[billing_details] ,这是您如何提供详细信息(例如持卡人的账单地址)以将其与创建的PaymentMethod资源关联的。

但问题是,这仅在您未使用旧的Beta标志初始化Stripe.js的情况下handleCardPaymenthandleCardPayment将在handleCardPayment创建Source对象(src_123)而不是PaymentMethod (pm_123)来创建它。

当你这样做,图书馆将转化payment_method_datasource_data ,然后使source_data[billing_details]发送,但API服务器端拒绝它,因为它不是一个有效的参数服务器端。

为避免此错误,您需要确保在没有betas标志的情况下初始化Stripe.js。 所以转

const stripe = Stripe('pk_test_123', {   betas: ['payment_intent_beta_3'] });

变成:

const stripe = Stripe('pk_test_123');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM