[英]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的情况下handleCardPayment
, handleCardPayment
将在handleCardPayment
创建Source
对象(src_123)而不是PaymentMethod
(pm_123)来创建它。
当你这样做,图书馆将转化payment_method_data
到source_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.