欢迎光临
我们一直在努力

验证信用卡函数(字符串处理)

建站超值云服务器,限时71元/月

验证还取决于信用卡的类型。

**************************************

name: credit card mod 10 validation

description:this function validates if

a credit card number "appears" to be val

id, depending on the type of card, and a

lso performing a mod 10 check on the num

bers.

by: lewis moten

inputs:ascardtype – type of credit car

d. (american express, discover, visa, ma

stercard)

ancardnumber – the number appearing on the card. dashes and spaces are ok. numbers are stripped from

the data provided.

returns:returns a boolean (true/false)

determining if the number appears to be

valid or not.

assumes:the user needs to be able to lo

ok through the code and determine wich s

trings represent the cards. you can eith

er type out the entire card name (i.e. "

american express") or type in just a let

ter representing the card name (i.e. "a"

)

side effects:just because the function

returns that the card is valid, there ar

e several other things that are not bein

g validated.

date – make sure the card has not expired

active account – this script does not communicate with any banks to determine if the account number is

active

authorization – again, this script does not communicate with any banks to determine if the card has

authorization to purchase a product.

warranty:

code provided by planet source code(tm)

(www.planet-source-code.com) as is, wi

thout warranties as to performance, fitn

ess, merchantability,and any other warra

nty (whether expressed or implied).

terms of agreement:

by using this source code, you agree to

the following terms…

1) you may use this source code in per

sonal projects and may compile it into a

n .exe/.dll/.ocx and distribute it in bi

nary format freely and with no charge.

2) you may not redistribute this sourc

e code (for example to a web site) witho

ut written permission from the original

author.failure to do so is a violation o

f copyright laws.

3) you may link to this code from anot

her website, provided it is not wrapped

in a frame.

4) the author of this code may have re

tained certain additional copyright righ

ts.if so, this is indicated in the autho

rs description.

**************************************

function iscreditcard(byref ascardtype, byref ancardnumber)

performs a mod 10 check to make sure the credit card number

appears valid

developers may use the following numbers as dummy data:

visa: 430-00000-00000

american express: 372-00000-00000

mastercard: 521-00000-00000

discover: 620-00000-00000

dim lsnumber credit card number stripped of all spaces, dashes,

etc.

dim lschar an individual character

dim lntotal sum of all calculations

dim lndigit a digit found within a credit card number

dim lnposition identifies a character position in a string

dim lnsum sum of calculations for a specific set

default result is false

iscreditcard = false

====

strip all characters that are not numbers.

====

loop through each character inthe card number submited

for lnposition = 1 to len(ancardnumber)

grab the current character

lschar = mid(ancardnumber, lnposition, 1)

if the character is a number, append it to our new number

if isnumeric(lschar) then lsnumber = lsnumber & lschar

next lnposition

====

the credit card number must be between 13 and 16 digits.

====

if the length of the number is less then 13 digits, then exit the routine

if len(lsnumber) < 13 then exit function

if the length of the number is more then 16 digits, then exit the routine

if len(lsnumber) > 16 then exit function

====

the credit card number must start with:

4 for visa cards

37 for american express cards

5 for mastercards

6 for discover cards

====

choose action based on type of card

select case lcase(ascardtype)

visa

case "visa", "v"

if first digit not 4, exit function

if not left(lsnumber, 1) = "4" then exit function

american express

case "american express", "americanexpress", "american", "ax", "a"

if first 2 digits not 37, exit function

if not left(lsnumber, 2) = "37" then exit function

mastercard

case "mastercard", "master card", "master", "m"

if first digit not 5, exit function

if not left(lsnumber, 1) = "5" then exit function

discover

case "discover", "discovercard", "discover card", "d"

if first digit not 6, exit function

if not left(lsnumber, 1) = "6" then exit function

case else

end select lcase(ascardtype)

====

if the credit card number is less then 16 digits add zeros

to the beginning to make it 16 digits.

====

continue loop while the length of the number is less then 16 digits

while not len(lsnumber) = 16

insert 0 to the beginning of the number

lsnumber = "0" & lsnumber

wend not len(lsnumber) = 16

====

multiply each digit of the credit card number by the corresponding digit of

the mask, and sum the results together.

====

loop through each digit

for lnposition = 1 to 16

parse a digit from a specified position in the number

lndigit = mid(lsnumber, lnposition, 1)

determine if we multiply by:

1 (even)

2 (odd)

based on the position that we are reading the digit from

lnmultiplier = 1 + (lnposition mod 2)

calculate the sum by multiplying the digit and the multiplier

lnsum = lndigit * lnmultiplier

(single digits roll over to remain single. we manually have to do this.)

if the sum is 10 or more, subtract 9

if lnsum > 9 then lnsum = lnsum – 9

add the sum to the total of all sums

lntotal = lntotal + lnsum

next lnposition

====

once all the results are summed divide

by 10, if there is no remainder then the credit card number is valid.

====

iscreditcard = ((lntotal mod 10) = 0)

end function iscreditcard

asp精品屋 from http://www.planet-source-code.com/vb/scripts/showcode.asp?lngwid=4&txtcodeid=6267

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 验证信用卡函数(字符串处理)
分享到: 更多 (0)