Stripe SCA合规性

时间:2019-05-17 18:53:23

标签: api stripe-payments sca

我目前正在维护在丹麦使用的应用。我们使用Stripe API从服务器进行付款,流程如下:用户输入CC,应用程序端对卡进行令牌化,然后发送到服务器,服务器通过API将付款发送到Stripe。

我试图弄清楚要与SCA一起使用需要进行哪些更改,我阅读了有关使用付款方式的文档,但我们没有使用该api。

我们是否需要从服务器传递一些东西给用户以进行额外的身份验证?

感谢您的输入!

1 个答案:

答案 0 :(得分:0)

如果您不想/不需要使用Elements,那么除了PaymentIntents API之外,还有新的SCA就绪Checkout V3。

  1. 在服务器端尽早创建Checkout会话

    using ReactiveUI;
    using System.Collections.Generic;
    
    namespace Demo
    {
        public class MainViewModel : ReactiveObject
        {
            public IEnumerable<string> SomeList => new List<string> { "foo", "bar" };
        }
    }
    
  2. 重定向用户前面的Checkout

      const session = stripe.checkout.sessions.create({
        payment_method_types: ['card'],
        customer: stripe_customer_id,
        success_url: `https://API/v1/cart/${cart.id}/pay`,
        cancel_url: `https://API/v1/cart/${cart.id}/cancel`,
        line_items: [{
            name: 'Bike',
            description: 'Super cool bike...',
            images: 'https://UI/product.png',
            amount: 100,
            currency: 'USD',
      }]
        payment_intent_data: {
          capture_method: 'automatic', // or 'manual'
      }});
    

    3a。用户将从带区托管的结帐重定向到/v1/cart/${cart.id}/pay  此时您将要完成订单。

    3b。或者,设置一个Webhook并处理传入的通知

注意:如果您决定使用capture_method = manual,那么您将希望像这样捕获付款:

  const result = await stripe.redirectToCheckout({ sessionId: session.id });

参考:https://stripe.com/docs/payments/checkout/server