Первая проблема с которой сталкиваются новички-это ЧЕК картона на валидность!
Существует два уровня проверки кредитной карты.
1. Luhn алгоритма, которая также известна как моделирование проверки 10. Алгоритм Luhn будет проверять количество символов для определенного типа карт. Почти все системы обработки платежей с кредиток используют этот метод проверки.
2. Если торговцы хотят дальнейшей проверки карты они могут сделать запрос на авторизацию в банк-эмитент для: 1) проверки адреса (AVS) и 2) CVV2 - кода на карточке.
Рассмотрим Luhn алгоритм подробней.
Как нам узнать, какая у нас карта, visa, MC или amex по первым цифрам номера:
______________________________________________________________
Эмитент
..................Идентификатор
....Длинна номера
....Цифра Алгоритма
MasterCard
....................51-55
........................16
........................10
VISA
..................................4
..........................13-16
.....................10
American Express
..........34-37
........................ 15
........................10
______________________________________________________________
Предположим у нас есть карта с номером 4408 0412 3456 7890
из вышеуказонной таблици мы узнали,что это visa..., далее узнаем действительна она или нет, применим для проверки Luhn алгоритм:
1) Умножаем каждую 2-ю цифру с права на 2.
2) Результаты умножения должны быть меньше 10, поэтому там где значение больше 10 вычитаем 9.
3) Складываем первые оригинальные цифры с результатом умножения вторых цифр на 2.
Пример на номере 4408 0412 3456 7890
....4 ....4
....0 .....8
....0 .....4
....1 .... 2
....3 ......4
....5 .......6
....7 .......8
.....9 ........0
4х2=
8 ...0х2=
0 ....0х2=
0 ....1х2=
2 ....3х2=
6 ....5х2=
10 ....7х2=
14 ....9х2=
18 ...........................................................................10-9=
1 .....14-9=
5 ....18-9=
9 8 + 4 +
0 + 8 +
0 + 4 +
2 + 2 +
6 + 4 +
1 + 6 +
5 + 8 +
9 + 0 = 67
Мы получаем 67, которое не кратно 10, и поэтому мы заключаем, что номер 4408 0412 3456 7890 является Неверным номером кредитной карты.
Другая карта,к примеру номер 4408 0412 3456 7893 проверяем её по Luhn алгоритму,так как показано выше.., мы получаем 70, делится на 10... 4417 1234 5678 9113 является действительный номер кредитной карты.
Онлайн сервис для проверки на валидность:
http://credit-card-information.elliottback.com/ Софт для чека:
Easy Credit Card Verifier
http://www.ashkonsoftware.com/download/ecverify.exe Advanced Credit Card Validator 2.12
http://download.cnet.com/Advanced-Credit-Card-Validator/3000-2649_4-10060427.html Дальнейшая полная проверка с проверкой адреса (AVS) и CVV2 - кода на карточке, вы найдете в другой теме о чеке картона:
http://www.carder.info/showthread.php?t=433