[英]how to check if the credit card is valid or not for paypal
我必须通过paypal获取用户信用卡详细信息。 用户第一次输入卡的详细信息时,付款是通过paypal pro完成的。 如果该卡无效,则不会付款。 只有在卡有效时才会付款。
用户第一次输入有效的卡详细信息并完成付款时,如果此时用户修改了信用卡详细信息,我需要再次检查该卡是否对PayPal有效。
那么有没有API只检查信用卡详细信息而不处理任何付款?
我正在运行php和mysql。
谢谢。
阿维纳什
使用Paypal,您的选择非常有限。 如果您使用的是Paypal Pro,则只需0.00美元即可通过授权验证该卡是否存在且合法。 如果您使用的是Paypal提供的其他付款方式,您将无法执行此操作。
您的其他选择是验证卡至少包含有效信息。 您可以使用Luhn算法验证卡号是否合法。 所有信用卡号都以可以使用该算法验证的模式发布。 它无法确认该卡是否有效,但它将消除输入的伪造信用卡号。 您还应验证到期日期是否已过期,以及Visa,MasterCard和Discover Card的CVV代码长度仅为三位数,American Express为四位数。
如果您需要使用代码验证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
在不了解Paypal的情况下,我会想象他们有某种授权API,您可以在这里获得$ 0.00授权,看看该卡是否有效。
存储信用卡详细信息时请记住PCI要求。
客户可以更改哪些信用卡详细信息会对您存储的数据产生影响。 如果客户改变了像他的浮雕名称那样重要的东西,那么发行人会给客户一张新卡。 从您的角度来看,这应该是一张新卡(即使卡号没有改变)。
如果你保存一些其他细节,那么你节省了太多。
从我的观点来看(我在发行人工作),不要采用0.00美元的授权方式。 如果您想向客户收费,请进行授权。 不是Paypall,但发行人将处理自动化。 最后,只有发卡机构知道该卡是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.