ASP.net实现信用卡检查和自定义确认控件Asp.net 提供了功能十分强大的确认控件, 我们可以轻松的使用,但有一些特别的确认需要我们自己
来处理, 我们还可以从确认控件的基类中继承出附合我们自己需求的确认控件. 这是一种十分实用的方法, 下面我向大家介绍这方面的二篇文章, 它们提供了具全的实现步骤,我想没有比这更好的入门了.
文章作者: David J. Gottlieb 翻译:raozr
当你在互联网上购买商品时,你用于支付的信用卡需在服务端被特别的程序确认.其中的一项确认就是信用卡号码和类型是否有效.在大多数情况下是用这Luhn算法来实现的. 在本文中我们将建一个新类用于信用卡号的有效性检查,在这个过程中我们将返会一个布尔值 来进行校验.
在写代码前,先看看算法. 从右边的第二位开始往左到最后一位,每隔一位数乘以2. 看他们相加的和是否大于10.如果大于10,我们将乘积的右边和左边的数相加,得出的数再加到前面的和. 然后每相隔的项如第1,第3,第5等 加入到最后的等式. 完成以上步骤,我们将所有得出的数相加.如果和可以被10整除,则卡号有效;反之无效. 这里有一个简单的例子:
假定信用卡号为
4111-1111-1111-1111
4 1 1 1 - 1 1 1 1 - 1 1 1 1 - 1 1 1 1
x2 x2 x2 x2 x2 x2 x2 x2
--------------------------------------
8 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1
当我们把这些数相加等于30.30可以被10整除,由此说明此卡号有效.下面我们开始写代码. 让我们从建立一个确定卡号是否有效的布尔返回值开始.
PRE.ShowCode {BACKGROUND-COLOR:#ffffff;PADDING-RIGHT: 3px;Border: 0px;FONT-SIZE: 11px;PADDING-BOTTOM: 0px;PADDING-TOP: 0px;FONT-FAMILY: "Courier New";}.ColorLineNumber { color:red; }.DefaultFontFace { color:arial; }.DefaultFontSize { size:3; }.ColorBackGroundLine { color:#EEEECC; }.ColorAlternatingBackGroundLine { color:#FFFFEE; }.ColorComment { color:green; }.ColorServerSideTag { color:green; }.ColorDataBinding { color:dodgerblue; }.ColorControlTag { color:maroon; }.ColorAspTemplateTag { color:green; }.ColorStartHtmlTag { color:blue; }.ColorEndHtmlTag { color:blue; }.ColorVBKeyword { color:blue; }.ColorVBComment { color:green; }.ColorCSKeyword { color:blue; }.ColorSQLKeyword { color:blue; }.ColorCSComment { color:green; }.ColorSQLComment { color:green; }.ColorSQLFunctions { color:maroon; }.ColorSQLDataTypes { color:green; }
{
int indicator = 1;
int firstNumToAdd = 0;
int secondNumToAdd = 0;
string num1;
string num2;
{
{
firstNumToAdd += ccAdd;
indicator = 0;
}
{
{
num1 = temporary.ToString().Substring(0,1);
num2 = temporary.ToString().Substring(1,1);
secondNumToAdd += (Convert.ToInt32(num1) + Convert.ToInt32(num2));
}
{
secondNumToAdd += ccAdd + ccAdd;
}
indicator = 1;
}
}
.
{
isValid = }
{
isValid = }
}
让我们把以上的程序插入到Page Loag 事件中,在这个事件中我们引用以上代码, 并将我们的信用卡号当作参数传入.
PRE.ShowCode {BACKGROUND-COLOR:#ffffff;PADDING-RIGHT: 3px;Border: 0px;FONT-SIZE: 11px;PADDING-BOTTOM: 0px;PADDING-TOP: 0px;FONT-FAMILY: "Courier New";}.ColorLineNumber { color:red; }.DefaultFontFace { color:arial; }.DefaultFontSize { size:3; }.ColorBackGroundLine { color:#EEEECC; }.ColorAlternatingBackGroundLine { color:#FFFFEE; }.ColorComment { color:green; }.ColorServerSideTag { color:green; }.ColorDataBinding { color:dodgerblue; }.ColorControlTag { color:maroon; }.ColorAspTemplateTag { color:green; }.ColorStartHtmlTag { color:blue; }.ColorEndHtmlTag { color:blue; }.ColorVBKeyword { color:blue; }.ColorVBComment { color:green; }.ColorCSKeyword { color:blue; }.ColorSQLKeyword { color:blue; }.ColorCSComment { color:green; }.ColorSQLComment { color:green; }.ColorSQLFunctions { color:maroon; }.ColorSQLDataTypes { color:green; }
{
{
{
Result.Text = "Is Valid!";
}
{
Result.Text = "Nope!";
}
}
}
下一篇: 实现信用卡检查的自定义控件