In questo articolo avevamo visto come calcolare il codice CIN dall’iban, ora vediamo, sempre grazie alle informazioni dettagliate sull’algoritmo, che troviamo a questo indirizzo:
http://www.artico.name/soft/iban/wiban.htm a cura di Giuliano Artico, come calcolare i due check digits (codice detto anche CIN Europeo), sempre grazie a python, ipotizziamo in questo caso di avere già il cin, l’abi, il cab e il numero di conto:
#Il codice BBAN (Basic Bank Account Number) è un codice internazionale che contiene le coordinate bancarie nazionali.
#In Italia esso è lungo 23 caratteri ed è costituito dal semplice accostamento di CIN, ABI, CAB e conto corrente.
#1 A destra del codice BBAN si aggiunge la stringa IT00.
bban = cin + abi + cab + cc + "IT00"
print "BBAN:%s" % (bban)
#2 Nella stringa così ottenuta si sostituiscono i caratteri alfabetici con un numero di due cifre ottenuto dalla posizione della lettera nell'alfabeto a cui va sommato 9.
#Così, ad esempio, A diventa 10, B diventa 11, C diventa 12 e così via fino a Z, che diventa 35.
sban = ''
for adigit in bban:
p = 0
if adigit in alfa:
for achar in alfa:
p = p +1
if adigit==achar:
cc = p + 9
else:
cc = adigit
sban = sban + str (cc)
#3 In questo modo si ottiene un numero di almeno 30 cifre e si considera il resto della divisione fra tale numero e 97. Il resto di tale divisione è un numero compreso fra 0 e 96.
ci = int(sban) % 97
resto = 98 - ci
#4 Infine il resto ottenuto al punto 3 va sottratto da 98 e si ottiene così il codice desiderato, che è un numero compreso fra 2 e 98.
#se il numero è di una sola cifra, occorre anteporre uno zero (così si hanno sempre due caratteri, cioè 02, 03 fino a 09), per fare questo utilizziamo la funzione zfill.
print "CHECK DIGITS:%s" % (str(resto).zfill(2))