Reputation: 217
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
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
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