0% acharam este documento útil (0 voto)
1K visualizações2 páginas

Validação de Cartão Petrobras Mastercard

A função verifica se um número de cartão de crédito é válido em 3 etapas: 1) verifica se o número é numérico, 2) valida o formato de acordo com o tipo de cartão, 3) calcula a soma dos dígitos multiplicados e valida se é igual a zero.

Enviado por

Vitor ff mobaile
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
1K visualizações2 páginas

Validação de Cartão Petrobras Mastercard

A função verifica se um número de cartão de crédito é válido em 3 etapas: 1) verifica se o número é numérico, 2) valida o formato de acordo com o tipo de cartão, 3) calcula a soma dos dígitos multiplicados e valida se é igual a zero.

Enviado por

Vitor ff mobaile
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

<%

'-----------------------------------------------------
'Funcao: IsCartaoCredito(ByVal strNumeroCartao, strTipoCartao)
'Sinopse: Verifica se o cartão de crédito passado por parametro
' está no formato correto e se o dígito é correto.
' Formatos aceitos:
' Cartão Prefixo Tamanho
' MASTERCARD 51-55 16
' VISA 4 13 ou 16
' AMEX 34 ou 37 15
' DINERSCLUB 300-305 ou 36 ou 38 14
'Parametro: strNumeroCartao: Numero do cartão (somente número)
' strTipoCartao: Pode assumir os seguintes valores:
' MASTERCARD, VISA, AMEX, DINERSCLUB
'Retorno: Booleano
'Autor: Gabriel Fróes - [Link]
'-----------------------------------------------------
Function IsCartaoCredito(ByVal strNumeroCartao, strTipoCartao)
'Verificando se o valor passado é todo numerico
If Not IsNumeric(strNumeroCartao) Then
Retorno = False
Else
Retorno = True
End If

'Valor é numérico
If Retorno Then
'Selecionando o prefixo do cartão
strTipoCartao = Ucase(strTipoCartao)
Select Case strTipoCartao
Case "MASTERCARD"
strExpressaoRegular = "^5[1-5]\d{14}$"
Case "VISA"
strExpressaoRegular = "^4(\d{12}|\d{15})$"
Case "AMEX"
strExpressaoRegular = "^3(3|7)\d{14}$"
Case "DINERSCLUB"
strExpressaoRegular = "^3((6|8)\d{12})|(00|01|02|03|
04|05)\d{11})$"
End Select

'Validando o formato do cartão de crédito


Set regEx = New RegExp ' Cria o
Objeto Expressão
[Link] = strExpressaoRegular '
Expressão Regular
[Link] = True ' Sensitivo
ou não
[Link] = True
Retorno = [Link](strNumeroCartao)
Set regEx = Nothing

'Formato correto
If Retorno Then
'-----------------------------------------
'Processo de validação do numero do cartão
'-----------------------------------------
intVerificaSoma = 0
blnFlagDigito = False
For Cont = Len(strNumeroCartao) To 1 Step -1
Digito = Asc(Mid(strNumeroCartao, Cont, 1))
'Isola o caracter da vez
If (Digito > 47) And (Digito < 58) Then
'Somente se for inteiro
Digito = Digito - 48
'Converte novamente para numero (-48)
If blnFlagDigito Then
Digito = Digito + Digito
'Primeiro duplica-o
If Digito > 9 Then
'Verifica se o Digito é maior que 9
Digito = Digito - 9
'Força ser somente um número
End If
End If
blnFlagDigito = Not blnFlagDigito
intVerificaSoma = intVerificaSoma + Digito
If intVerificaSoma > 9 Then
intVerificaSoma = intVerificaSoma - 10
'Mesmo que MOD 10 só que mais rapido
End If
End If
Next
If intVerificaSoma <> 0 Then ' Deve totalizar zero
Retorno = False
Else
Retorno = True
End If
'-----------------------------------------
End If
End If
'Retornando a função
IsCartaoCredito = Retorno
End Function
%>

<%
'-----------------------------------------------------
'Funcao:    IsCartaoCredito(ByVal strNumeroCartao, strTipoCartao)
'
Digito = Asc(Mid(strNumeroCartao, Cont, 1)) 
'Isola o caracter da vez
                If (Digito > 47) And (D

Você também pode gostar