Php 如何检查贝宝的信用卡是否有效

Php 如何检查贝宝的信用卡是否有效,php,credit-card,paypal,Php,Credit Card,Paypal,我必须采取通过贝宝支付用户信用卡的详细信息。 用户第一次输入卡的详细信息时,通过paypal pro进行支付。 如果该卡无效,则不会付款。只有在信用卡有效的情况下才能付款 用户第一次输入有效的信用卡详细信息并完成付款时,如果该用户当时修改了信用卡详细信息,我需要再次检查该卡是否对paypal有效 那么,是否有只检查信用卡详细信息而不处理任何付款的API 我正在运行php和mysql 谢谢 Avinash在不太了解Paypal的情况下,我可以想象他们有某种授权API,您可以在其中执行$0.00授权

我必须采取通过贝宝支付用户信用卡的详细信息。 用户第一次输入卡的详细信息时,通过paypal pro进行支付。 如果该卡无效,则不会付款。只有在信用卡有效的情况下才能付款

用户第一次输入有效的信用卡详细信息并完成付款时,如果该用户当时修改了信用卡详细信息,我需要再次检查该卡是否对paypal有效

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

我正在运行php和mysql

谢谢


Avinash

在不太了解Paypal的情况下,我可以想象他们有某种授权API,您可以在其中执行$0.00授权,以查看该卡是否有效


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

客户可以更改哪些对您存储的数据有影响的信用卡详细信息。如果客户改变了一些实质性的东西,比如他的浮雕名字,那么发卡机构会给客户一张新卡。从您的角度来看,这应该是一张新卡(即使卡号没有改变)

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


从我的角度来看(我在一家发行商工作),不要走0.00美元的授权之路。如果您想向客户收费,请进行授权。不是Paypall,但发行人将处理自动化。最后,只有发卡机构知道该卡是否有效

使用贝宝,您的选择非常有限。如果您使用的是Paypal Pro,您可以通过只需0.00美元的授权来验证该卡的存在和合法性。如果你使用贝宝提供的其他付款方式,你将无法做到这一点

然后,您的其他选项将是验证该卡至少包含有效信息。您可以通过使用验证卡号是否合法。所有信用卡号都是以一种模式发行的,可以使用该算法进行验证。它无法确认信用卡是否有效,但它将消除伪造的信用卡号。您还应确认到期日期未过期,并且对于Visa卡、万事达卡和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

Luhn算法有帮助,但这种检查是众所周知的(包括黑暗面…@Avinash)-我添加了PHP代码,用于根据Luhn算法检查信用卡号@robertnl-Luhn算法是一种确保未提供坏卡号的好方法,无需向网关和商户帐户提供商支付验证信用卡的费用。这不是一个完整的解决方案,但你可以免费做到最好。在我刚刚发布的客户端网站上,此功能显然无法验证所有真实的信用卡号(可能不是所有类型的信用卡)。