user1121332
user1121332

Reputation: 217

Validate credit card details

How do I validate a credit card. I need to do luhn check. Is there an api in blackberry to do it?

Upvotes: 7

Views: 3482

Answers (2)

chandu komati
chandu komati

Reputation: 795

using System; 

class GFG { 

// Returns true if given 
// card number is valid 
static bool checkLuhn(String cardNo) 
{ 
    int nDigits = cardNo.Length; 
    int nSum = 0; 
    bool isSecond = false; 
    for (int i = nDigits - 1; i >= 0; i--) 
    { 
        int d = cardNo[i] - '0'; 
        if (isSecond == true) 
            d = d * 2; 

        // We add two digits to handle 
        // cases that make two digits 
        // after doubling 
        nSum += d / 10; 
        nSum += d % 10; 
        isSecond = !isSecond; 
    } 
    return (nSum % 10 == 0); 
} 

    static public void Main() 
    { 
        String cardNo = "79927398713"; 
        if (checkLuhn(cardNo)) 
            Console.WriteLine("This is a valid card"); 
        else
            Console.WriteLine("This is not a valid card"); 

    } 
} 

OUT PUT :-

This is a valid card

Upvotes: 0

rfsk2010
rfsk2010

Reputation: 8611

You can use the following method to validate a credit card number

// -------------------
// Perform Luhn check
// -------------------

public static boolean isCreditCardValid(String cardNumber) {
    String digitsOnly = getDigitsOnly(cardNumber);
    int sum = 0;
    int digit = 0;
    int addend = 0;
    boolean timesTwo = false;

    for (int i = digitsOnly.length() - 1; i >= 0; i--) {
        digit = Integer.parseInt(digitsOnly.substring(i, i + 1));
        if (timesTwo) {
            addend = digit * 2;
            if (addend > 9) {
                addend -= 9;
            }
        } else {
            addend = digit;
        }
        sum += addend;
        timesTwo = !timesTwo;
    }

    int modulus = sum % 10;
    return modulus == 0;

}

Upvotes: 11

Related Questions