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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一串16位数码是不是构成合法的信用卡号,相关的知识,希望对你有一定的参考价值。

参考技术A 是。
信用卡的卡号位长遵循国际标准可以在13位到19为之间不等。但是我们常用的绝大多数信用卡都是16位的,而美国运通的信用卡为15为,大莱卡为14位。
还需注意的是一个银行的借记卡和贷记卡的卡号位数一般是不一样的,譬如建设银行,借记卡是以4367开头,是19位,而带Visa标志的贷记卡也以4367开头,但是是16位的。

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

【中文标题】如何检查只有信用卡号有效而不是借记卡..?【英文标题】: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位数码是不是构成合法的信用卡号,的主要内容,如果未能解决你的问题,请参考以下文章

用Python编写一个程序,如何判断用户输入的八位信用卡号码是不是合法?

TextBox:为信用卡号插入空格?

信用卡 卡号

为啥我农行信用卡办理网上支付的3D验证码总是系统错误啊!填完卡号啥的无法进入下一页或者最后确认错误

C# Windows 应用程序(不是 wpf)将文本框中的信用卡号屏蔽为输入,然后验证和处理信用卡号

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