Ciao a tutti!
Spero che qualche anima pia possa darmi una mano! :-)
Ho realizzato un e-commerce per un cliente con Drupal 6.28 e Ubercart.
Il mio cliente vuole utilizzare per i pagamenti il sistema
Keyclient (http://www.keyclient.it/portal/portal/portale)
Ho trovato il modulo e installato il modulo
uc_keyclient-6.x-1.x-dev.zip (https://drupal.org/project/uc_keyclient) ma c'è un problema: al termine della procedura di acquisto mi viene sempre "Errore calcolo MAC".
Ho chiamato l'assistenza e mi hanno detto che è cambiato l'algoritmo da MD a SHA1.
Mi hanno inviato anche un documento tecnico ma io putroppo non sono un programmatore!
Questo è quello che c'è scritto per calcolare il codice mac
Grazie davvero a chi può aiutarmi. Il sito è praticamente finito e risolto questo problema posso mandarlo on line. Ovviamente ho il fiato sul collo del cliente :-)
Inserisco il codice che mi hanno mandato nel commento a questo post.
Ecco il codice per il calcolo del Mac
___________________________________
“mac” messaggio di avvio pagamento
Per il messaggio di avvio transazione, il testo da firmare deve contenere i campi:
· codTrans
· divisa
· importo
· stringa segreta
Il mac sarà calcolato nel seguente modo:
mac= HASH SHA(codTrans=<valore codTrans>divisa=<valore
divisa>importo=<valore importo><chiave segreta”)
Un esempio di tale stringa potrebbe essere:
“codTrans=testCILME534divisa=EURimporto=1esempiodicalcolomac”
allora il campo mac sarà:
mac= HASH
SHA(“codTrans=testCILME534divisa=EURimporto=1esempiodicalcolomac”)
Il valore ottenuto sarà:
"992e40c00b79ad1a6e4a5a8c61e776e696796a79"
______________________________________
Non ho mai utilizzato quel modulo, ma se il problema è solo nel cambio di algoritmo potresti provare a fare questo:
Credo/spero che il problema sia solo quello! ;)
Ciao
Grazie! Ho fatto come mi hai detto ma purtroppo come prima vengo indirizzato sul sito della banca e dopo aver compilato con di dati di test che mi hanno fornito loro il risultato è sempre "Calcolo Mac Errato".
Forse è perché non ho incrociato le dita :-)
O forse bisogna modificare qualcos'altro... Se qualcuno può aiutarmi...
Grazie ancora comunque.
Ciao
Risolto!!!
Per chi può interessare il codice da inserire era questo:
function uc_keyclient_macify($codTrans, $divisa, $importo, $secret) {
$str2mac = 'codTrans='. $codTrans;
$str2mac .= 'divisa='. $divisa;
$str2mac .= 'importo='. $importo;
$str2mac .= $secret;
#TEST
#$str2mac = "codTrans=testCILME534divisa=EURimporto=1esempiodicalcolomac"; #TEST
#return $str2mac;
return urlencode(sha1(($str2mac)));
}