在保存卡以备将来付款时使用Stripe 3D Secure

时间:2019-02-12 09:01:36

标签: stripe-payments 3d-secure

在保存卡以供将来付款时是否可以使用3D Secure?

根据Stripe的文档,https://stripe.com/docs/sources/three-d-secure。这似乎是这样做的方法。

但是,根据文档,不再建议使用而是使用PaymentIntents:

  

不再建议使用此API。如果您希望使用3D Secure,我们强烈建议您采用我们的新付款API PaymentIntents。

那么,有没有一种方法可以使用PaymentIntents(以利用3D安全)来保存卡而无需立即付款?

3 个答案:

答案 0 :(得分:3)

  

在保存卡以供将来付款时是否可以使用3D Secure?

我使用PaymentIntents要做的是创建一个客户,然后付款:

customer = stripe.Customer.create(

payment = stripe.PaymentIntent.create(customer=customer_id, ....

在付款中,您拥有卡类型payment['charges']['data'][0]['payment_method_details']['card']['brand']和卡的后4位数字payment['charges']['data'][0]['payment_method_details']['card']['last4']

您可以在本地存储customer_id,卡类型和最后4位数字,以在下次显示给该客户。 要再次付款,您只需将stripe.PaymentIntent.create()与您第一次保存的customer.id一起使用。 如果客户要使用其他卡,只需

customer = stripe.Customer.modify(
                customer_id,
                source=token_id
           )

token_id来自前端的stripe.js

答案 1 :(得分:2)

为了让您知道,由于与您有同样的顾虑,我已经联系了Stripe支持部门,在此给出答案:

  

[...] PaymentIntents当前不支持创建源,而此后也不创建费用。遗憾的是,也无法将3DSecure与当前的信用卡保存方法集成。

     

PaymentIntents是一个相当新的Stripe产品,我们仍在研究问题并确定我们将支持哪些功能。节省资源绝对是我们优先考虑的事项,以后还会有更多关于此更新的信息。

我试图获取有关其路线图的更多信息,以了解该功能是否将在9月发布,但支持人员无法提供此信息。

答案 2 :(得分:0)

使用the SetupIntent API,基本上是PaymentIntent,数量为空(相同的工作流程)。