Buongiorno a tutti!!!
Sto cercando di creare un plugin di Nopcommerce per implementare un pagamento con KeyClient.
Io provo con il codice seguente a creare il MAC codificato in SHA-1, ma la pagina della banca mi riporta sempre "ERRORE CALCOLO MAC" senza altre spiegazioni. Qualcuno mi sa spiegare dove sbaglio?
//----- calcolo mac ----------
string SHA = string.Format("{0}{1}{2}{3}{4}",
codTrans,
divisa,
importo,
chiave);
string SHAX = "codTrans=" + codTrans + "divisa=" + divisa + "importo=" + importo + "esempiodicalcolomac";
byte[] SHAresult;
SHA1 shaM = new SHA1Managed();
SHAresult = shaM.ComputeHash(Encoding.Default.GetBytes(SHA));
string SHAresultStr = BitConverter.ToString(SHAresult).Replace("-", "");
//----- /calcolo mac ---------
//------- Creo il POST ------------
var remotePostHelper = new RemotePost();
remotePostHelper.FormName = "form1";
//remotePostHelper.Url = GetBpmUrl();
remotePostHelper.Add("codTrans", codTrans);
remotePostHelper.Add("divisa", divisa);
remotePostHelper.Add("importo", importo);
//remotePostHelper.Add("url", url);
// remotePostHelper.Add("alias", alias);
remotePostHelper.Add("mac", SHAresultStr);
//remotePostHelper.Add("Ds_Merchant_TransactionType" , strDs_Merchant_TransactionType);
//remotePostHelper.Add("Ds_Merchant_UrlKO", strDs_Merchant_UrlKO);
remotePostHelper.Post();
}
//------------- /creo il POST --------------
==> Le linee guida della banca sono le seguenti:
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=1esempiodi calcolomac”
allora il campo mac sarà:
mac= HASH
SHA(“codTrans=testCILME534divisa=EURimporto=1esemp iodicalcolomac”)
Il valore ottenuto sarà:
"992e40c00b79ad1a6e4a5a8c61e776e696796a79"