如何检查只有信用卡号有效而不是借记卡..?

Posted

技术标签:

【中文标题】如何检查只有信用卡号有效而不是借记卡..?【英文标题】:How to check Only Credit card number is valid not Debit card..? 【发布时间】:2018-04-22 02:26:33 【问题描述】:

我使用此代码检查信用卡号码是否有效。但在这段代码中,检查号码贷记和借记。

我只想检查信用卡号。

private bool IsValidNumber(string number)
    
        int[] DELTAS = new int[]  0, 1, 2, 3, 4, -4, -3, -2, -1, 0 ;
        int checksum = 0;
        char[] chars = number.ToCharArray();
        for (int i = chars.Length - 1; i > -1; i--)
        
            int j = ((int)chars[i]) - 48;
            checksum += j;
            if (((i - chars.Length) % 2) == 0)
                checksum += DELTAS[j];
        

        return ((checksum % 10) == 0);
    

谢谢,考希克。

【问题讨论】:

我认为您将必须定义如何知道数字是信用卡号还是借记卡号。据我所知,没有办法从它自己的数字看出它是什么类型的卡,只有银行知道。但是,这可能因银行和国家/地区而异 @DaImTo 你没明白我的意思。我想检查客户输入的信用卡号码是否有效 如何知道号码是否有效?信用卡公司有没有给你一个规格,说 124 是有效的信用卡,789 是有效的借记卡?你怎么知道有一种模式可以定义信用卡号和借记卡号?您无法创建算法来测试不存在的模式。 也许是愚蠢的问题,但为什么需要区分?当卡有效时,您为什么关心客户如何付款?卡是否有效,是否被冻结,只有联系银行才能知道。 【参考方案1】:

我认为您将必须定义如何知道数字是信用卡号还是借记卡号。据我所知,没有办法从它自己的数字看出它是什么类型的卡,只有银行知道。但是,这可能因银行和国家/地区而异。

【讨论】:

可以判断一张卡是不是借记卡。我们在我们的计费和支付平台中进行。 @JohnConde 介意用你的做法来回答这个问题。在欧洲,我们一直无法做到这一点。目前,如果银行由于借记卡而拒绝我们知道它的类型错误,我们会尝试从该卡中扣款。如果您有办法在不发送费用的情况下验证卡,我很乐意听到。 我必须看看是否可以从完成这项工作的团队那里获得信息,因为我自己没有所有详细信息。 @John,我觉得您在 PSP 工作,因此可能可以访问 ABA 发布的包含此信息的 IIN 更新。如果无法访问最新的 IIN(卡范围)更新,我认为这是不可能的。

以上是关于如何检查只有信用卡号有效而不是借记卡..?的主要内容,如果未能解决你的问题,请参考以下文章

一串16位数码是不是构成合法的信用卡号,

信用卡号验证 用c++如何解决?

用信用卡付款不起作用

如何在 PayPal 客人付款上显示“使用借记卡或信用卡付款”按钮而不是“以客人身份结帐”

如何验证信用卡/支票卡号?

通过 Braintree 识别信用卡/借记卡的原产国?