예제 #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");
            }
        }
예제 #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");
            }
        }