Esempio n. 1
0
        static void Main(string[] args)
        {
            // apikey e chiave segreta
            string APIKEY        = "<ALIAS>";                                                                                                                                                                                                                                                          // Sostituire con il valore fornito da CartaSi
            string CHIAVESEGRETA = "CsT830052L63QHNd1E351uh73272Q23h175650k9wU28T7EU1Hd6l156N5I2oBY6U7OW7kP34282C5965r8V0hpG72ojq5B58896G4Q6oXGc36a6z3Tn6J271B4N33p45C28369j7E025O2245GK7T5p1MNN5T25S05UJxCKH0TMc98fBQ66M2NxRDzrR66c7RG2K367D4xiV54X9kY592K5E3V1X1U01AO85P3n4z28eJIL13t8Ww3P28eg24y2"; // Sostituire con il valore fornito da CartaSi

            string requestUrl = "https://int-ecommerce.cartasi.it/ecomm/api/recurring/pagamentoRicorrente";

            DateTime data         = DateTime.Now;
            string   codTrans     = "TESTPS_" + data.ToString("yyyyMMddHHmmss");
            string   divisa       = "EUR";
            string   importo      = "5000";
            string   scadenza     = "202012";
            string   timeStamp    = (Math.Round((DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds)).ToString();
            string   numContratto = "NC_TEST_20170407125522";

            //CALCOLO MAC
            SampleXPayRequest sampleXPay = new SampleXPayRequest();
            string            mac        = sampleXPay.HashMac("apiKey=" + APIKEY + "numeroContratto=" + numContratto + "codiceTransazione=" + codTrans + "importo=" + importo + "divisa=" + divisa + "scadenza=" + scadenza + "timeStamp=" + timeStamp + CHIAVESEGRETA);

            var requestParams = new Dictionary <string, string>();

            requestParams["apiKey"]            = APIKEY;
            requestParams["importo"]           = importo;
            requestParams["divisa"]            = divisa;
            requestParams["codiceTransazione"] = codTrans;
            requestParams["mac"]             = mac;
            requestParams["numeroContratto"] = numContratto;
            requestParams["scadenza"]        = scadenza;
            requestParams["codiceGruppo"]    = "GRUPPOTEST";
            requestParams["timeStamp"]       = timeStamp;

            string json = JsonConvert.SerializeObject(requestParams);

            var response = sampleXPay.Post(requestUrl, json);

            if (response["esito"] == "OK")
            { // Transazione andata a buon fine
                // Calcolo con i parametri di ritorno
                string macCalculated = sampleXPay.HashMac("esito=" + response["esito"] + "idOperazione=" + response["idOperazione"] + "timeStamp=" + response["timeStamp"] + CHIAVESEGRETA);
                if (macCalculated != response["mac"])
                {
                    Console.WriteLine("errore MAC: " + macCalculated + " non corrisponde a " + response["mac"]);
                }
                else
                {
                    Console.WriteLine("La transazione " + codTrans + " è avvenuta con successo; codice autorizzazione: " + response["codiceAutorizzazione"]);
                }
            }
            else
            { // Transazione rifiutata
                Console.WriteLine("La transazione " + codTrans + " è stata rifiutata");
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            // apikey e chiave segreta
            string APIKEY        = "<ALIAS>";                        // Sostituire con il valore fornito da Nexi
            string CHIAVESEGRETA = "CHIAVE SEGRETA PER CALCOLO MAC"; // Sostituire con il valore fornito da Nexi

            string requestUrl = "https://int-ecommerce.nexi.it/ecomm/api/recurring/pagamentoRicorrente";

            DateTime data         = DateTime.Now;
            string   codTrans     = "TESTPS_" + data.ToString("yyyyMMddHHmmss");
            string   divisa       = "EUR";
            string   importo      = "5000";
            string   scadenza     = "202012";
            string   timeStamp    = (Math.Round((DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds)).ToString();
            string   numContratto = "NC_TEST_20170407125522";

            //CALCOLO MAC
            SampleXPayRequest sampleXPay = new SampleXPayRequest();
            string            mac        = sampleXPay.HashMac("apiKey=" + APIKEY + "numeroContratto=" + numContratto + "codiceTransazione=" + codTrans + "importo=" + importo + "divisa=" + divisa + "scadenza=" + scadenza + "timeStamp=" + timeStamp + CHIAVESEGRETA);

            var requestParams = new Dictionary <string, string>();

            requestParams["apiKey"]            = APIKEY;
            requestParams["importo"]           = importo;
            requestParams["divisa"]            = divisa;
            requestParams["codiceTransazione"] = codTrans;
            requestParams["mac"]             = mac;
            requestParams["numeroContratto"] = numContratto;
            requestParams["scadenza"]        = scadenza;
            requestParams["codiceGruppo"]    = "GRUPPOTEST";
            requestParams["timeStamp"]       = timeStamp;

            string json = JsonConvert.SerializeObject(requestParams);

            var response = sampleXPay.Post(requestUrl, json);

            if (response["esito"] == "OK")
            { // Transazione andata a buon fine
                // Calcolo con i parametri di ritorno
                string macCalculated = sampleXPay.HashMac("esito=" + response["esito"] + "idOperazione=" + response["idOperazione"] + "timeStamp=" + response["timeStamp"] + CHIAVESEGRETA);
                if (macCalculated != response["mac"])
                {
                    Console.WriteLine("errore MAC: " + macCalculated + " non corrisponde a " + response["mac"]);
                }
                else
                {
                    Console.WriteLine("La transazione " + codTrans + " è avvenuta con successo; codice autorizzazione: " + response["codiceAutorizzazione"]);
                }
            }
            else
            { // Transazione rifiutata
                Console.WriteLine("La transazione " + codTrans + " è stata rifiutata");
            }
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            // Alias e chiave segreta
            string ALIAS         = "<ALIAS>";                          // Sostituire con il valore fornito da Nexi
            string CHIAVESEGRETA = "<CHIAVE SEGRETA PER CALCOLO MAC>"; // Sostituire con il valore fornito da Nexi

            string requestUrl        = "https://int-ecommerce.nexi.it/ecomm/ecomm/DispatcherServlet";
            string merchantServerUrl = "https://my-server.example.tdl/";

            DateTime data     = DateTime.Now;
            string   codTrans = "TESTPS_" + data.ToString("yyyyMMddHHmmss");
            string   divisa   = "EUR";
            string   importo  = "5000";

            string numContratto  = "NC_TEST_" + data.ToString("yyyyMMddHHmmss");
            string tipoRichiesta = "PR";

            // Calcolo MAC
            SampleXPayRequest sampleXPay = new SampleXPayRequest();
            string            mac        = sampleXPay.HashMac("codTrans=" + codTrans + "divisa=" + divisa + "importo=" + importo + CHIAVESEGRETA);

            var requestParams = new Dictionary <string, string>();

            // Parametri obbligatori
            requestParams["alias"]          = ALIAS;
            requestParams["importo"]        = importo;
            requestParams["divisa"]         = divisa;
            requestParams["codTrans"]       = codTrans;
            requestParams["url"]            = merchantServerUrl + "esito.aspx";
            requestParams["url_back"]       = merchantServerUrl + "annullo.aspx";
            requestParams["mac"]            = mac;
            requestParams["urlpost"]        = merchantServerUrl + "notifica.aspx";
            requestParams["num_contratto"]  = numContratto;
            requestParams["tipo_servizio"]  = "paga_multi";
            requestParams["tipo_richiesta"] = tipoRichiesta;
            requestParams["gruppo"]         = "GRUPPOTEST";

            // Parametri facoltativi
            requestParams["mail"]                   = "*****@*****.**";
            requestParams["languageId"]             = "ITA";
            requestParams["descrizione"]            = "Prova di pagamento";
            requestParams["session_id"]             = "12345";
            requestParams["Note1"]                  = "NOTA 1";
            requestParams["Note2"]                  = "NOTA 2";
            requestParams["Note3"]                  = "NOTA 3";
            requestParams["OPTION_CF"]              = "RSSMRA74D22A001Q";
            requestParams["selectedcard"]           = "VISA";
            requestParams["TCONTAB"]                = "D";
            requestParams["infoc"]                  = "Info su pagamento per compagnia";
            requestParams["infob"]                  = "Info su pagamento per banca";
            requestParams["modo_gestione_consegna"] = "completo";

            string uri = "?";

            foreach (KeyValuePair <string, string> param in requestParams)
            {
                uri += param.Key + "=" + param.Value + "&";
            }
            Console.WriteLine(uri);
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            // chiave segreta
            string CHIAVESEGRETA = "<CHIAVE SEGRETA PER CALCOLO MAC>"; // Sostituire con il valore fornito da CartaSi

            // Calcolo MAC
            SampleXPayRequest sampleXPay = new SampleXPayRequest();
            string            mac        = sampleXPay.HashMac("codTrans=" + args.codTrans +
                                                              "esito=" + args.esito +
                                                              "importo=" + args.importo +
                                                              "divisa=" + args.divisa +
                                                              "data=" + args.data +
                                                              "orario=" + args.orario +
                                                              "codAut=" + args.codAut +
                                                              CHIAVESEGRETA);

            // Verifico corrispondenza tra MAC calcolato e MAC di ritorno
            if (mac != args.mac)
            {
                Console.WriteLine("Errore MAC: " + mac + " non corrisponde a " + args.mac);
            }
            else
            {
                // Nel caso in cui non ci siano errori gestisco il parametro esito
                if (args.esito == "OK")
                {
                    Console.WriteLine("OK, pagamento avvenuto, preso riscontro");
                }
                else
                {
                    Console.WriteLine("KO, pagamento non avvenuto, preso riscontro");
                }
            }
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            // Alias e chiave segreta
            string ALIAS         = "<ALIAS>";                          // Sostituire con il valore fornito da Nexi
            string CHIAVESEGRETA = "<CHIAVE SEGRETA PER CALCOLO MAC>"; // Sostituire con il valore fornito da Nexi

            string requestUrl = "https://int-ecommerce.nexi.it/ecomm/api/bo/downloadReport";

            string timeStamp = (Math.Round((DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds)).ToString();
            string idReport  = "123";

            // Calcolo MAC
            SampleXPayRequest sampleXPay = new SampleXPayRequest();
            string            mac        = sampleXPay.HashMac("apiKey=" + ALIAS + "timeStamp=" + timeStamp + "idReport=" + idReport + CHIAVESEGRETA);

            var requestParams = new Dictionary <string, string>();

            // Parametri obbligatori
            requestParams["apiKey"]    = ALIAS;
            requestParams["timeStamp"] = importo;
            requestParams["idReport"]  = divisa;
            requestParams["mac"]       = mac;

            string uri = "?";

            foreach (KeyValuePair <string, string> param in requestParams)
            {
                uri += param.Key + "=" + param.Value + "&";
            }

            string result = requestUrl + uri;
        }