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