编程语言
首页 > 编程语言> > PHP-如何检查信用卡是否对Paypal有效

PHP-如何检查信用卡是否对Paypal有效

作者:互联网

我必须获取用户信用卡详细信息才能通过Paypal付款.
用户首次输入卡的详细信息时,将通过贝宝(Paypal)专业版进行付款.
如果该卡无效,则不会付款.仅当卡有效时才付款.

用户首次输入有效的卡详细信息并完成付款时,如果该用户当时修改了信用卡详细信息,则需要再次检查该卡是否适用于贝宝.

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

我正在运行php和mysql.

谢谢.

阿维纳什

解决方法:

使用贝宝时,您的选择非常有限.如果您使用的是Paypal Pro,则只需支付0.00美元即可进行授权,以验证该卡是否存在并合法.如果您使用贝宝(Paypal)提供的其他付款方式,则将无法执行此操作.

然后,您的其他选择是验证卡至少包含有效信息.您可以使用Luhn algorithm来验证卡号是否合法.所有信用卡号均以可以使用该算法进行验证的模式发行.它无法确认该卡是否有效,但会消除输入的虚假信用卡号.您还应该验证有效期限是否未过期,并且Visa,MasterCard和Discover卡的CVV码只有三位数,而美国运通卡的CVV码只有四位数.

如果您需要根据Luhn算法验证卡号的代码,请告诉我,我可以附加答案以包括该代码.

编辑(在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

标签:credit-card,php,paypal
来源: https://codeday.me/bug/20191106/2001563.html