2010-01-29 44 views
3

我必须通过PayPal采取用户信用卡的详细信息付款。 用户第一次输入卡的详细信息时,通过paypal pro完成支付。 如果卡无效,付款将不会完成。只有卡有效时才能完成付款。如何检查信用卡是否有效PayPal

用户第一次输入有效卡信息并完成支付后,如果此时用户修改了信用卡详细信息,那么我需要再次检查卡是否适用于PayPal。

那么是否有任何API只检查信用卡的细节和不处理任何付款?

我正在运行php和mysql。

谢谢。

阿维纳什

回答

4

随着贝宝你的选择是非常有限的。如果您使用的是PayPal Pro,您可以通过仅授权$ 0.00来验证该卡是否存在并且是合法的。如果您使用Paypal提供的其他付款方式,您将无法执行此操作。

然后您的其他选项将验证卡至少包含有效信息。您可以使用Luhn algorithm验证卡号是否合法。所有信用卡号码都可以使用该算法进行验证。它不能确认该卡是有效的,但它会消除输入的虚假信用卡号码。您还应该验证到期日期没有过期,并且Visa,MasterCard和Discover卡的CVV代码只有三位数字长,而美国运通卡的CVV代码只有四位数字。

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

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 
+0

是肯定请,这将是很好,我得到它。 – Avinash

+0

Luhn algoritm有帮助,但这个检查是众所周知的(包括黑暗的一面...) – robertnl

+0

@Avinash - 我已经添加了PHP代码,检查信用卡号码与Luhn算法。 @robertnl - Luhn算法是一种很好的方法,可以确保没有提供错误的卡号,而无需向网关和商户帐户提供商支付信用卡验证费用。这不是一个完整的解决方案,但你可以免费做最好的解决方案。 –

0

不知道太多关于贝宝我会想象自己有某种授权API,在那里你可以做$ 0.00美元的授权,看看卡的有效期。

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

0

客户可以更改信用卡的哪些细节,这些细节会影响您存储的数据。如果客户改变了他的浮雕名称等实质性内容,那么发行人会给客户一张新卡。从你的角度来看,这应该是一张新卡(即使卡号没有变化)。

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

从我的角度来看(我正在发行人工作),不要走$ 0.00的授权方式。如果您想要向客户收费,请执行您的授权。不是PayPall,但发行人将处理自动化。最后,只有发行人知道该卡是否有效。