FI 71 indbetalingskort

Tags:    php

Hejsa,

jeg skulle gerne kunne udregne FI71 indbetalingskort's id'et ud ved at f.eks. at sende brugeren telefonnummer ind i en værdi og derefter få hele 71 kode ud.

Selve metoden til at regne id'et ud hedder Modulus 10 !

Håber der er en som har denne kode liggende.

Med venlig hilsen

Dennis Hansen
post@dennishansen.com



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
// FI17 beregning made by Janus S. Andersen dato : 04/03-2003
#include<dos.h>
#include<conio.h>
#include<iostream.h>

/////////////////////////////////
// Udregner tæller i FI17 //
// Input : //
// str : Betalingsident //
// Output : Tæller //
int fi(int str)
{
static int vagt=1; // Opretter var til vægtning
int Tel; // Tæller
int Sum; // Sum
Sum=((int)str*vagt); // Beregner sum. id * vægt

Tel=Sum/10+(int(Sum-(Sum/10)*10)); // Et`er + ti`er

// cout<<"\\n Vægt : "<<vagt;
// cout<<"\\n Sum : "<<((int)str*vagt);
// cout<<"\\n Tel : "<<Tel;

vagt++; // Forøger vægtnings var
if(vagt>2) // Er vægtnings var over 2
vagt=1; // Herved sætes denne til 1
return Tel; // Aflevere Tælleren
}

void FI17Test()
{
int TelSum=0;
TelSum+=fi(0);
TelSum+=fi(2);
TelSum+=fi(6);
TelSum+=fi(8);
TelSum+=fi(4);
TelSum+=fi(0);
TelSum+=fi(1);
TelSum+=fi(4);
TelSum+=fi(9);
TelSum+=fi(9);
TelSum+=fi(6);
TelSum+=fi(5);
TelSum+=fi(3);
TelSum+=fi(2);
cout<<"\\nTæller sum \\t\\t: "<<TelSum;
cout<<"\\nModel \\t\\t\\t: "<<(TelSum%10);
cout<<"\\nKontrol cifre \\t\\t: "<<10-(TelSum%10);
}
////////////////////////////
// Udregner FI71 af //
// Input : //
// Data som et array //
// Output : //
// Kontrol cifre //
int FI17(int *data,int size)
{
int TelSum=0;
for(int i=0;i<size;i++)
TelSum+=fi(data);

return (10-(TelSum%10));
}

void main()
{
cout<<"FI17 test\\n";
FI17Test(); // Test af funktion
int a[14]={0,2,6,8,4,0,1,4,9,9,6,5,3,2};
cout<<"\\n\\nTest resultat \\t\\t: "<<FI17(a,14);
}

// FI17 kaldes med data. FI17 bruger FI. Ellers kan resten slettes. FI og FI17 anvendes
Med venlig Hilsen
Janus

P.s Havde lige lidt meget at se til. Jeg ved godt metoden ikke hedder FI17 men FI71 dette kan rettes...... Er ved at lave nogle robotter og har et par andre projekter på dagsordenen

P.p.s Kom til at lave den i C++, den skulle være lavet i PHP. (Denne kan nemt omsættes. Skriv hvis der er brug for det)


*** Livet er smukt ***[Redigeret d. 06/03-03 12:44:52 af Janus S. Andersen]




Hej
Kender ikke FI71, men Modulus 10 er simpel. Den hedder "$tal=tal1%10;".
Håber det kunne hjælpe. Hvis dettte ikke er nok så skriv i punkter hvad "FI71" gør og så skal jeg skrive koden til dig, hvis jeg får tid....


Best Regaard
Janus S. Andersen

*** Livet er smukt ***

Hejsa,

jeg skulle gerne kunne udregne FI71 indbetalingskort's id'et ud ved at f.eks. at sende brugeren telefonnummer ind i en værdi og derefter få hele 71 kode ud.

Selve metoden til at regne id'et ud hedder Modulus 10 !

Håber der er en som har denne kode liggende.

Med venlig hilsen

Dennis Hansen
post@dennishansen.com





På www.sj-compute.dk/fi71.pdf kan du se hvordna man regner den ud.

Med venlig hilsen

Dennis Hansen
post@dennishansen.com


Hejsa,

jeg skulle gerne kunne udregne FI71 indbetalingskort's id'et ud ved at f.eks. at sende brugeren telefonnummer ind i en værdi og derefter få hele 71 kode ud.

Selve metoden til at regne id'et ud hedder Modulus 10 !

Håber der er en som har denne kode liggende.

Med venlig hilsen

Dennis Hansen
post@dennishansen.com





Hej Dennis
Jeg prøver lige at se på den en gang i næste uge, har lidt meget at se til. Kan godt se den kan virke kompleks. Tror godt jeg kan lave en program stump der gør det samme som der står i teksten, men det vil jeg forsøge i næste uge.

Tales ved
Janus S. Andersen

*** Livet er smukt ***



her er lidt du måske kan bruge.. fandt det selv.. synes at være ved at stå lidt af, men forstår stadig lidt af det!

<?php

/************************************************************************
*
* CCVal - Credit Card Validation function.
*
* Copyright (c) 1999 Holotech Enterprises. All rights reserved.
* You may freely modify and use this function for your own purposes. You
* may freely distribute it, without modification and with this notice
* and entire header intact.
*
* This function accepts a credit card number and, optionally, a code for
* a credit card name. If a Name code is specified, the number is checked
* against card-specific criteria, then validated with the Luhn Mod 10
* formula. Otherwise it is only checked against the formula. Valid name
* codes are:
*
* mcd - Master Card
* vis - Visa
* amx - American Express
* dsc - Discover
* dnc - Diners Club
* jcb - JCB
*
* A description of the criteria used in this function can be found at
* http://www.beachnet.com/~hstiles/cardtype.html. If you have any
* questions or comments, please direct them to ccval@holotech.net
*
* Alan Little
* Holotech Enterprises
* http://www.holotech.net/
* September 1999
*
************************************************************************/

function CCVal($Num, $Name = 'n/a') {

// Innocent until proven guilty
$GoodCard = true;

// Get rid of any non-digits
$Num = ereg_replace("[^[:digit:]]", "", $Num);

// Perform card-specific checks, if applicable
switch ($Name) {

case "mcd" :
$GoodCard = ereg("^5[1-5].{14}$", $Num);
break;

case "vis" :
$GoodCard = ereg("^4.{15}$|^4.{12}$", $Num);
break;

case "amx" :
$GoodCard = ereg("^3[47].{13}$", $Num);
break;

case "dsc" :
$GoodCard = ereg("^6011.{12}$", $Num);
break;

case "dnc" :
$GoodCard = ereg("^30[0-5].{11}$|^3[68].{12}$", $Num);
break;

case "jcb" :
$GoodCard = ereg("^3.{15}$|^2131|1800.{11}$", $Num);
break;
}

// The Luhn formula works right to left, so reverse the number.
$Num = strrev($Num);

$Total = 0;

for ($x=0; $x<strlen($Num); $x++) {
$digit = substr($Num,$x,1);

// If it's an odd digit, double it
if ($x/2 != floor($x/2)) {
$digit *= 2;

// If the result is two digits, add them
if (strlen($digit) == 2)
$digit = substr($digit,0,1) + substr($digit,1,1);
}

// Add the current digit, doubled and added if applicable, to the Total
$Total += $digit;
}

// If it passed (or bypassed) the card-specific check and the Total is
// evenly divisible by 10, it's cool!
if ($GoodCard && $Total % 10 == 0) return true; else return false;
}

?>



Hej
Jeg har ikke lige tid til at oversætte koden til PHP, er der en der gidder oversætte den ?

Jeg har ikke adgang til en server med PHP på...... Hvis der er en der kender en gratis, gerne med DB adgang så skriv til mig på Janus_andersen@hotmail.com


Best Regaard
Janus S. Andersen

*** Livet er smukt ***



t