С Paypal ваши возможности очень ограничены. Если вы используете Paypal Pro, вы можете подтвердить, что карта существует и является законной, выполнив Авторизацию только за 0,00 долларов США. Если вы используете другие способы оплаты, предлагаемые Paypal, вы не сможете это сделать.
Тогда вы можете проверить, что карта содержит хотя бы достоверную информацию. Вы можете проверить правильность номера карты, используя алгоритм Luhn . Все номера кредитных карт выдаются по шаблону, который можно проверить с помощью этого алгоритма. Он не может подтвердить, что карта действительна, но исключит ввод поддельных номеров кредитных карт. Вам также следует убедиться, что срок действия не истек и что код CVV имеет длину всего три цифры для Visa, MasterCard и Discover Card и четыре цифры для American Express.
Если вам нужен код для проверки номера карты по алгоритму Луна, дайте мне знать, и я могу добавить свой ответ, чтобы включить его.
EDIT (добавлен код алгоритма Луна в PHP):
function passes_luhn_check($cc_number) {
$checksum = 0;
$j = 1;
for ($i = strlen($cc_number) - 1; $i >= 0; $i--) {
$calc = substr($cc_number, $i, 1) * $j;
if ($calc > 9) {
$checksum = $checksum + 1;
$calc = $calc - 10;
}
$checksum += $calc;
$j = ($j == 1) ? 2 : 1;
}
if ($checksum % 10 != 0) {
return false;
}
return true;
}
Использование:
$valid_cc = passes_luhn_check('4427802641004797'); // returns true
$valid_cc = passes_luhn_check('4427802641004798'); // returns false