我必须通过paypal将用户信用卡详细信息付款。 用户第一次输入卡的详细信息时,付款是通过paypal pro完成的。 如果该卡无效,则不会付款。只有在卡有效时才会付款。
用户首次输入有效的卡片详细信息且付款完成后,如果此时用户修改了信用卡详细信息,我需要再次检查该卡是否对PayPal有效。
那么是否有任何API仅检查信用卡详细信息而不处理任何付款?
我正在运行php和mysql。
感谢。
阿维纳什
答案 0 :(得分:4)
使用Paypal,您的选择非常有限。如果您使用的是Paypal Pro,则只需0.00美元即可通过授权验证该卡是否存在且合法。如果您使用的是Paypal提供的其他付款方式,您将无法执行此操作。
您的其他选择是验证卡至少包含有效信息。您可以使用Luhn algorithm验证卡号是否合法。所有信用卡号都以可以使用该算法验证的模式发布。它无法确认该卡是否有效,但它将消除输入的伪造信用卡号。您还应验证到期日期是否已过期,以及Visa,MasterCard和Discover Card的CVV代码长度仅为三位数,American Express为四位数。
如果您需要使用代码验证Luhn算法的卡号,请告诉我,我可以附上我的答案以包含它。
EDIT(在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
答案 1 :(得分:0)
在不了解Paypal的情况下,我会想象他们有某种授权API,您可以通过$ 0.00授权查看该卡是否有效。
记住存储信用卡详细信息时的PCI要求。
答案 2 :(得分:0)
客户可以更改信用卡的哪些细节会对您存储的数据产生影响。如果客户改变了像他的浮雕名称那样重要的东西,那么发行人会给客户一张新卡。从您的角度来看,这应该是一张新卡(即使卡号没有改变)。
如果你保存一些其他细节,那么你节省了太多。
从我的观点来看(我在发行人处工作),不要采用0.00美元的授权方式。如果您想向客户收费,请进行授权。不是Paypall,但发行人将处理自动化。最后,只有发卡机构知道该卡是否有效。