Skip to content

Anduin2017/Edi.CreditCardUtils

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Edi.CreditCardUtils

.NET Standard Lib for Credit Card Number Operations

.NET Core

This project is still in early development.

Usage

Install from NuGet

Powershell

Install-Package Edi.CreditCardUtils -Version 0.4.0-alpha

.NET Core CLI

dotnet add package Edi.CreditCardUtils --version 0.4.0-alpha

Validate Credit Card Number

The CreditCardValidator performs 4 steps:

  1. Check card number format (is 14-19 digits)
  2. Perform Luhn check (Mod10)
  3. Test against known card type regex (Visa / Master etc..)
  4. Optional: Test against customized regex

Return Type:

public class CreditCardValidationResult
{
    public CardNumberFormat CardNumberFormat { get; set; }
    public string[] CardTypes { get; set; }
}

public enum CardNumberFormat
{
    None = 0,
    Valid_LuhnOnly = 100,
    Valid_BINTest = 101,
    Invalid_BadStringFormat = 200,
    Invalid_LuhnFailure = 201
}

Examples

You may find all scenarios in Unit Test code

Validate card number only

var result = CreditCardValidator.ValidCardNumber("6011000990139424");
Assert.IsTrue(result.CreditCardNumberFormat == CreditCardNumberFormat.Valid_LuhnOnly);

Validate a Visa card

var result = CreditCardValidator.ValidCardNumber("4012888888881881");
Assert.IsTrue(result.CardNumberFormat == CardNumberFormat.Valid_BINTest && result.CardTypes.Contains("Visa"));

Customized card validator

public class WellsFargoBankValidator : ICardTypeValidator
{
    public string Name => "Wells Fargo Bank";
    public string RegEx => @"^(485246)\d{10}$";
}

[Test]
public void TestCardTypeValidator()
{
    var result = CreditCardValidator.ValidCardNumber("4852461030260066", new ICardTypeValidator[]
    {
        new WellsFargoBankValidator()
    });
    Assert.IsTrue(result.CardNumberFormat == CardNumberFormat.Valid_BINTest && result.CardTypes.Contains("Wells Fargo Bank"));
}

Generate Card Number

var bin = "485246";
int length = 16;
var cn = CreditCardGenerator.GenerateCardNumber(bin, length);

About

.NET Standard Lib for Credit Card Number Operations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%