Example #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            merchantId            = Request.Form["txtCodigocomercio"];
            endpointurl           = ConfigurationManager.AppSettings["endpointurl"];
            user                  = ConfigurationManager.AppSettings["user"];
            password              = ConfigurationManager.AppSettings["password"];
            credentials           = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(user + ":" + password));
            amountPay             = Convert.ToDouble(Request.Form["txtMontoInicial"]);
            recurrentMaxAmountPay = Convert.ToDouble(Request.Form["txtMontoMaximo"]);

            ServicePointManager.Expect100Continue      = true;
            ServicePointManager.SecurityProtocol       = (SecurityProtocolType)3072;
            ServicePointManager.DefaultConnectionLimit = 9999;

            url = "https://" + endpointurl + "/api.security/v1/security";

            HttpWebRequest request;

            request        = WebRequest.Create(url) as HttpWebRequest;
            request.Method = "POST";
            request.Headers.Add("Authorization", "Basic " + credentials);
            StreamWriter writer;

            writer = new StreamWriter(request.GetRequestStream());
            writer.Close();

            HttpWebResponse response;
            StreamReader    reader;
            string          respuesta;

            try
            {
                response             = request.GetResponse() as HttpWebResponse;
                reader               = new StreamReader(response.GetResponseStream());
                respuesta            = reader.ReadToEnd();
                Session["sesionPay"] = respuesta;
                reader.Close();

                MerchantDefineData objMerchantDefineData = new MerchantDefineData();
                objMerchantDefineData.MDD19 = "LIM";
                objMerchantDefineData.MDD20 = "AQP";
                objMerchantDefineData.MDD21 = "AFKI345";

                Antifraud objAntifraud = new Antifraud();
                string    IP4Address   = GetIP4Address();
                Session["IP4Address"]           = IP4Address;
                objAntifraud.clientIp           = IP4Address;
                objAntifraud.merchantDefineData = objMerchantDefineData;

                SesionTokenRequest objSesionTokenRequest = new SesionTokenRequest();
                objSesionTokenRequest.channel             = Request.Form["cboCanalafiliacion"];
                objSesionTokenRequest.amount              = amountPay;
                objSesionTokenRequest.recurrenceMaxAmount = recurrentMaxAmountPay;
                objSesionTokenRequest.antifraud           = objAntifraud;

                string body = JsonHelper.JsonSerializer <SesionTokenRequest>(objSesionTokenRequest);

                url                 = "https://" + endpointurl + "/api.ecommerce/v2/ecommerce/token/session/" + merchantId;
                request             = WebRequest.Create(url) as HttpWebRequest;
                request.Method      = "POST";
                request.ContentType = "application/json";
                request.Headers.Add("Authorization", respuesta);
                writer = new StreamWriter(request.GetRequestStream());
                writer.Write(body);
                writer.Close();

                string resultado;
                try
                {
                    response = request.GetResponse() as HttpWebResponse;
                    reader   = new StreamReader(response.GetResponseStream());
                    var buffer = reader.ReadToEnd();
                    resultado = buffer.ToString();
                    reader.Close();

                    DataContractJsonSerializer service = new DataContractJsonSerializer(typeof(SesionTokenResponse));
                    MemoryStream        memory         = new MemoryStream(Encoding.UTF8.GetBytes(resultado));
                    SesionTokenResponse objResultado   = (SesionTokenResponse)service.ReadObject(memory);

                    /*Llenado de variables del botón*/
                    sessionToken    = objResultado.sessionKey;
                    channel         = Request.Form["cboCanalafiliacion"];
                    buttonSize      = Request.Form["cboTamanhoPresentacion"];
                    buttonColor     = Request.Form["cboColorPresentacion"];
                    merchantLogo    = Request.Form["txtUrllogo"];
                    merchantName    = Request.Form["txtNombrecomercio"];
                    formButtonColor = Request.Form["txtColorboton"];
                    Random random = new Random();
                    purchasenumber      = random.Next(1000, 9999).ToString();
                    amount              = amountPay.ToString();
                    recurrence          = "TRUE";
                    recurrencetype      = Request.Form["cboTipo"];
                    recurrencefrequency = Request.Form["cboFrecuencia"];
                    recurrencemaxamount = recurrentMaxAmountPay.ToString();
                    recurrenceamount    = Request.Form["txtMontoCargo"];
                    expirationminutes   = Request.Form["txtTimeout"];
                    timeouturl          = Request.Form["txtUrltimeout"];
                    /*Fin de llenado de variables del botón*/

                    CardHolder objCardHolder = new CardHolder();
                    objCardHolder.documentType   = Request.Form["cboTipodocumento"];
                    objCardHolder.documentNumber = Request.Form["txtNumerodocumento"];

                    string _cardHolder = JsonHelper.JsonSerializer <CardHolder>(objCardHolder);
                    Session["_cardHolder"] = _cardHolder;

                    Recurrence objRecurrence = new Recurrence();
                    objRecurrence.beneficiaryId = Request.Form["txtIdbeneficiario"];
                    objRecurrence.type          = Request.Form["cboTipo"];
                    objRecurrence.frequency     = Request.Form["cboFrecuencia"];
                    objRecurrence.maxAmount     = recurrentMaxAmountPay.ToString();
                    objRecurrence.amount        = Request.Form["txtMontoCargo"];

                    string _recurrence = JsonHelper.JsonSerializer <Recurrence>(objRecurrence);
                    Session["_recurrence"] = _recurrence;

                    Order objOrder = new Order();
                    objOrder.productId      = Request.Form["txtCodigoProducto"];
                    objOrder.purchaseNumber = purchasenumber;
                    objOrder.amount         = amountPay;
                    objOrder.currency       = Request.Form["cboMonedacomercio"];

                    string _order = JsonHelper.JsonSerializer <Order>(objOrder);
                    Session["_order"]      = _order;
                    Session["_merchantId"] = merchantId;
                }
                catch (WebException ex)
                {
                    resultado = ex.Message.ToString();
                }
            }
            catch (WebException ex)
            {
                respuesta = ex.Message.ToString();
            }
        }
Example #2
0
        public static void Initialize(PaymentGatewayContext context)
        {
            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            var antifraud = new Antifraud()
            {
                Name       = "Clear",
                ServiceUri = "https://integration.clearsale.com.br/api/order/get"
            };

            var stores = new List <Store>()
            {
                new Store {
                    Name = "000", AntifraudEnabled = true, MerchantKey = "123456789", Antifraud = antifraud
                },
                new Store {
                    Name = "001", AntifraudEnabled = false, MerchantKey = "123456789"
                }
            };

            var creditCardBrands = new List <CreditCardBrand>()
            {
                new CreditCardBrand {
                    Name = "Master"
                },
                new CreditCardBrand {
                    Name = "Visa"
                }
            };

            var acquirers = new List <Acquirer>()
            {
                new Acquirer {
                    Name = "Stone", Assembly = "PaymentGateway.AcquirerClient.Stone.AcquirerClientSaleService", ServiceUri = "https://transaction.stone.com.br/Sale"
                },
                new Acquirer {
                    Name = "Cielo", Assembly = "PaymentGateway.AcquirerClient.Cielo.AcquirerClientSaleService", ServiceUri = "https://apisandbox.cieloecommerce.cielo.com.br/1/sales/"
                }
            };

            var storeAcquirers = new List <StoreAcquirer>()
            {
                new StoreAcquirer {
                    Store = stores[0], Acquirer = acquirers[0], CreditCardBrand = creditCardBrands[0]
                },
                new StoreAcquirer {
                    Store = stores[0], Acquirer = acquirers[0], CreditCardBrand = creditCardBrands[1]
                },
                new StoreAcquirer {
                    Store = stores[1], Acquirer = acquirers[0], CreditCardBrand = creditCardBrands[0]
                },
                new StoreAcquirer {
                    Store = stores[1], Acquirer = acquirers[1], CreditCardBrand = creditCardBrands[1]
                }
            };

            var creditCards = new List <CreditCard>()
            {
                new CreditCard {
                    CreditCardBrand = creditCardBrands[0], CreditCardNumber = "0000000000000000"
                },
                new CreditCard {
                    CreditCardBrand = creditCardBrands[1], CreditCardNumber = "0000000000000001"
                }
            };

            context.Stores.AddRange(stores);
            context.CreditCardBrands.AddRange(creditCardBrands);
            context.Acquirers.AddRange(acquirers);
            context.StoreAcquirers.AddRange(storeAcquirers);
            context.CreditCards.AddRange(creditCards);
            context.SaveChanges();
        }