Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Verificar Cartão de Credito: Function - Delphi

Veja nesta Quick, como podemos validar Cartão de Crédito em Delphi


Olá galera, nesta Quick Tips, irei mostra como podemos validar os dígitos de um cartão de crédito, assim como é feito para validação de CNPJ e CPF, uma rotina pronta para uso, vamos à construção da mesma.

 

            Criamos uma função chamada ValidarCartaCredito, com os parâmetro pCartao: String, retornando uma valor Integer. Veremos agora a implementação desta função.

 

function TFrmPrincipal.ValidarCartaoCredito(pCartao: string): Integer;

var

    xCartao: string[21];

    VetCartao: array[0..21] of Byte absolute xCartao;

    kCartao: Integer;

    Cstr: string[21];

    y, x: Integer;

begin

    Cstr := '';

    FillChar(VetCartao, 22, #0);

    xCartao := pCartao;

    for x := 1 to 20 do

    if (VetCartao[x] in [48..57]) then

        Cstr := Cstr + chr(VetCartao[x]);

    xCartao := '';

    xCartao := Cstr;

    kCartao := 0;

    if not odd(Length(xCartao)) then

        for x := (Length(xCartao) - 1) downto 1 do

        begin

            if odd(x) then

                y := ((VetCartao[x] - 48) * 2)

            else

            y := (VetCartao[x] - 48);

            if (y >= 10) then

            y := ((y - 10) + 1);

            kCartao := (kCartao + y)

        end

    else

    for x := (Length(xCartao) - 1) downto 1 do

    begin

        if odd(x) then

            y := (VetCartao[x] - 48)

        else

            y := ((VetCartao[x] - 48) * 2);

        if (y >= 10) then

            y := ((y - 10) + 1);

        kCartao := (kCartao + y)

    end;

    x := (10 - (kCartao mod 10));

    if (x = 10) then

        x := 0;

    if (x = (VetCartao[Length(xCartao)] - 48)) then

        Result := Ord(Cstr[1]) - Ord('2')

    else

        Result := 0

end;

 

Usando a função.

Vamos adicionar 1 Edit(EdtCartaoCredito), 1 Label(LblResultado), e 1 BitBtn(BtnTestarCartao), e no clique do botão vamos implementar o seguinte :

 

procedure TFrmPrincipal. BtnTestarCartao Click(Sender: TObject);

begin

    case ValidarCartaoCredito(EdtCartaoCredito.Text) of

        0: LblResultado.Caption := 'Este Cartão é invalido ou desconhecido';

        1: LblResultado.Caption := 'Este Cartão é um AmEx';

        2: LblResultado.Caption := 'Este Cartão é um Visa';

        3: LblResultado.Caption := 'Este Cartão é um MasterCard;

    end;

end;

 

            Quando incluir o número do seu cartão, caso ele seja AmEx, Visa ou MasterCard, você poderá ver que uma mensagem será passada para o Caption do LblResultado, caso o valor seja inválido também será trato este tipo de erro. Como podemos notar, existe um Calculo assim como é feito no CPF e no CNPJ.

 

            Podemos criar uma unit, separada e implementar a mesma para reaproveitarmos esta função.

 

Fico por aqui ate à próxima Quick Tips.

 

Um abraço

 

 

Wesley Y

wyamazack@rwsolution.com.br






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Autor
Wesley Yamazack

Graduado em Analise de Sistemas, no ramo de desenvolvimento há mais de 6 anos, onde atuei em empresas de diversos seguimentos como financeiro, comercial, estacionamento, etc. Atualmente encontro-me como analista desenvolvedor terceirizado da Marinha do Brasil, além de desenvolver projetos particular...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível somente para quem possui Créditos DevMedia. (Ele não está associado a nenhuma publicação DevMedia).


  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03