条纹:获取信用卡的最后4位数字

Sta*_*dup 2 stripe-payments

我已经将Stripe.net升级到了最新版本20.3.0,但是现在我似乎找不到信用卡的.Last4。我有以下方法:

    public void CreateLocalCustomer(Stripe.Customer stipeCustomer)
    {
        var newCustomer = new Data.Models.Customer
        {
            Email = stipeCustomer.Email,
            StripeCustomerId = stipeCustomer.Id,
            CardLast4 = stipeCustomer.Sources.Data[0].Card.Last4
        };

        _dbService.Add(newCustomer);

        _dbService.Save();
    }
Run Code Online (Sandbox Code Playgroud)

但是现在stipeCustomer.Sources.Data[0].Card.Last4说了'IPaymentSource' does not contain a definition for 'Card'。有人知道我现在如何获得卡的详细信息吗?流程是,我通过将Stripe令牌传递给Stripe来创建客户,然后得到上面的stripeCustomer。因此,我希望它位于该对象的某个位置。但是我找不到。发行说明可以在这里找到。谢谢。

小智 5

在Stripe的旧世界中,您过去只能将一种付款方式附加给客户;特别是Card-objects。您可以创建一个Card-object使用Stripe.js / V2创建令牌API端点第一营造Token-object随后附上令牌的Customer-object创建卡API端点

但是,一旦Stripe扩展为支持许多其他付款方式,Stripe就支持一种新的对象类型,该对象类型封装了称为Source-objects的许多付款方式(包括信用卡)。甲Source-object是通过使用创建的Stripe.js / V3创建源API端点。它也可以被附着到一个Customer-object在大致相同的方式作为Card-objects如上所述,除了它们保留它们的对象类型。他们仍然是一个Source。您可以使用“ 附加源API端点”来执行此操作(这与上面提到的“ 创建卡API端点”显着相同)。

我现在要说的是,现在可以期待在sources-array(或Sources.NET)中返回两种不同的对象类型(或更多)。尽管所有这些方法都继承自IPaymentSource-interface。因此,如果您知道要返回一个Card-object,则只需将返回的对象Card强制转换为-class即可

这样的事情应该可以帮助您:

CardLast4 = ((Card) stipeCustomer.Sources.Data[0]).Last4
Run Code Online (Sandbox Code Playgroud)

通过查看Card-class文件中的这一行,您可以了解继承的含义:

https://github.com/stripe/stripe-dotnet/blob/master/src/Stripe.net/Entities/Cards/Card.cs#L7

祝好运!