Aiuto per Modifiche al modulo pagamenti keyclient per Ubercart. Da MDA a SHA1

5 contenuti / 0 new
Ultimo contenuto
Aiuto per Modifiche al modulo pagamenti keyclient per Ubercart. Da MDA a SHA1

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.

Drupal Version:

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:

  • nella cartella del modulo uc_keyclient apri con un editor di testi il file uc_keyclient.module
  • modifica la riga 220 sostituendo md5 con sha1 in questo modo:
    <?php
    // prima:
    220   return urlencode(base64_encode(md5($str2mac)));
    // dopo:
    220   return urlencode(base64_encode(sha1($str2mac)));
    ?>

  • salva il file;
  • pulisci la cache del sito andando in tuoSito/admin/settings/performance;
  • incrocia le dita e riprova!

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)));
}