Ir al contenido


Foto

[TRUCO DELPHI] Validar tarjetas de Credito.


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 29 agosto 2016 - 08:14

[TRUCO DELPHI] Validar tarjetas de Credito.


delphi
  1. function CheckCC(c: string): Integer;
  2. var
  3. card: string[21];
  4. Vcard: array[0..21] of Byte absolute card;
  5. Xcard: Integer;
  6. Cstr: string[21];
  7. y, x: Integer;
  8. begin
  9. Cstr := '';
  10. FillChar(Vcard, 22, #0);
  11. card := c;
  12. for x := 1 to 20 do
  13. if (Vcard[x] in [48..57]) then
  14. Cstr := Cstr + chr(Vcard[x]);
  15. card := '';
  16. card := Cstr;
  17. Xcard := 0;
  18. if not odd(Length(card)) then
  19. for x := (Length(card) - 1) downto 1 do
  20. begin
  21. if odd(x) then
  22. y := ((Vcard[x] - 48) * 2)
  23. else
  24. y := (Vcard[x] - 48);
  25. if (y >= 10) then
  26. y := ((y - 10) + 1);
  27. Xcard := (Xcard + y)
  28. end
  29. else
  30. for x := (Length(card) - 1) downto 1 do
  31. begin
  32. if odd(x) then
  33. y := (Vcard[x] - 48)
  34. else
  35. y := ((Vcard[x] - 48) * 2);
  36. if (y >= 10) then
  37. y := ((y - 10) + 1);
  38. Xcard := (Xcard + y)
  39. end;
  40. x := (10 - (Xcard mod 10));
  41. if (x = 10) then
  42. x := 0;
  43. if (x = (Vcard[Length(card)] - 48)) then
  44. Result := Ord(Cstr[1]) - Ord('2')
  45. else
  46. Result := 0
  47. end;

Ejemplo de Uso:


delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3. case CheckCC(Edit1.Text) of
  4. 0: Label1.Caption := 'Numero de Tarjeta Invalido';
  5. 1: Label1.Caption := 'Tarjeta AmEx';
  6. 2: Label1.Caption := 'Tarjeta Visa';
  7. 3: Label1.Caption := 'Tarjeta MasterCard';
  8. end;
  9. endl

Saludos!


  • 2




IP.Board spam blocked by CleanTalk.