如何检查信用卡是否对PayPal有效

时间:2010-01-29 06:41:17

标签: php credit-card paypal

我必须通过paypal将用户信用卡详细信息付款。 用户第一次输入卡的详细信息时,付款是通过paypal pro完成的。 如果该卡无效,则不会付款。只有在卡有效时才会付款。

用户首次输入有效的卡片详细信息且付款完成后,如果此时用户修改了信用卡详细信息,我需要再次检查该卡是否对PayPal有效。

那么是否有任何API仅检查信用卡详细信息而不处理任何付款?

我正在运行php和mysql。

感谢。

阿维纳什

3 个答案:

答案 0 :(得分:4)

使用Paypal,您的选择非常有限。如果您使用的是Paypal Pro,则只需0.00美元即可通过授权验证该卡是否存在且合法。如果您使用的是Paypal提供的其他付款方式,您将无法执行此操作。

您的其他选择是验证卡至少包含有效信息。您可以使用Luhn algorithm验证卡号是否合法。所有信用卡号都以可以使用该算法验证的模式发布。它无法确认该卡是否有效,但它将消除输入的伪造信用卡号。您还应验证到期日期是否已过期,以及Visa,MasterCard和Discover Card的CVV代码长度仅为三位数,American Express为四位数。

如果您需要使用代码验证Luhn算法的卡号,请告诉我,我可以附上我的答案以包含它。

EDIT(在PHP中添加了Luhn算法代码):

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

答案 1 :(得分:0)

在不了解Paypal的情况下,我会想象他们有某种授权API,您可以通过$ 0.00授权查看该卡是否有效。

记住存储信用卡详细信息时的PCI要求。

答案 2 :(得分:0)

客户可以更改信用卡的哪些细节会对您存储的数据产生影响。如果客户改变了像他的浮雕名称那样重要的东西,那么发行人会给客户一张新卡。从您的角度来看,这应该是一张新卡(即使卡号没有改变)。

如果你保存一些其他细节,那么你节省了太多。

从我的观点来看(我在发行人处工作),不要采用0.00美元的授权方式。如果您想向客户收费,请进行授权。不是Paypall,但发行人将处理自动化。最后,只有发卡机构知道该卡是否有效。