コード例 #1
0
        public TransactionResponse MakeCreditCardTransaction(CreditCardTransactionRequest transactionRequest)
        {
            var client = new RestClient("http://localhost:61337");

            var request = new RestRequest("/v1/api/Gateway/MakeCreditCardTransaction", Method.POST);

            var json = JsonConvert.SerializeObject(transactionRequest);

            request.AddParameter("text/json", json, ParameterType.RequestBody);

            IRestResponse response = client.Execute(request);


            TransactionResponse transactionResponse = null;



            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                try
                {
                    transactionResponse = JsonConvert.DeserializeObject <TransactionResponse>(response.Content);
                }
                catch (Exception ex)
                {
                }
            }
            else
            {
            }

            return(transactionResponse);
        }
コード例 #2
0
        static void Main(string[] args)
        {
            TransactionManagerServiceAgent transactionManagerServiceAgent = new TransactionManagerServiceAgent();


            var transactionId = System.Guid.NewGuid();

            CreditCardTransactionRequest transactionRequest = new CreditCardTransactionRequest()
            {
                Transaction = new RX.Gateway.Model.Transaction.CreditCardTransaction()
                {
                    ObjectID         = transactionId,
                    AmountInCents    = 10000,
                    InstallmentCount = 1,
                    //Date = DateTime.Now,


                    CreditCardNumber = "4111111111111111",
                    Brand            = ECreditCardBrand.Visa,
                    ExpMonth         = 10,
                    ExpYear          = 22,
                    HolderName       = "LUKE SKYWALKER",
                    SecurityCode     = "123"
                }
            };


            transactionManagerServiceAgent.MakeCreditCardTransaction(transactionRequest);
        }
コード例 #3
0
        /// <summary>
        /// Method creates Credit Card Transaction Order Request
        /// </summary>
        /// <returns></returns>
        private static String doCreditCardTransactionOrderRequest()
        {
            //CreditCardTransaction
            CreditCardTransactionRequest oCreditCardTransactionOrderRequest = new CreditCardTransactionRequest();
            IPGApiOrderRequest           oIPGApiOrderRequest = oCreditCardTransactionOrderRequest.CreditCardTransactionOrderRequest;

            return(SendOrderRequest(oIPGApiOrderRequest));
        }
コード例 #4
0
        public TransactionResponse MakeCreditCardTransaction(
            [FromServices] RxGatewayDbContext dbContext,
            [FromServices] IUnityOfWork unityOfWork,
            [FromServices] IStoreService storeService,
            [FromServices] IAcquirierService acquirierService,
            [FromServices] IAntiFraudService antiFraudService,
            [FromServices] ICreditCardTransactionService creditCardTransactionService,
            [FromServices] IShopkeeperService shopkeeperService,

            [FromBody] CreditCardTransactionRequest transactionRequest)
        {
            if (transactionRequest == null)
            {
                return(new TransactionResponse(null, Model.API.EStatusResponse.Error, "Transaction Request is null!"));
            }

            if (IsValuesCreditCardTransactionValid(transactionRequest.Transaction))
            {
                return(new TransactionResponse(null, Model.API.EStatusResponse.Error, "Some field of Trasaction request is invalid!"));
            }


            RX.Gateway.Model.Transaction.CreditCardTransaction creditCardTransaction = transactionRequest.Transaction;


            var opResult = shopkeeperService.GetById(creditCardTransaction.ShopkeeperId);

            if (opResult == null || opResult.Status != Model.Enums.EOperationsStatus.Success && opResult.Entity == null)
            {
                return(new TransactionResponse(null, Model.API.EStatusResponse.Error, "Shopkeeper is invalid!"));
            }

            var shopkeeper = opResult.Entity as Shopkeeper;

            var acquirierByBrand = shopkeeper.AcquirierByBrand.Where(o => o.CreditCardBrand == creditCardTransaction.Brand).FirstOrDefault();

            if (acquirierByBrand == null)
            {
                return(new TransactionResponse(null, Model.API.EStatusResponse.Error, "Não há adiquirente relacionado a bandeira : " + creditCardTransaction.Brand.ToString()));
            }


            if (acquirierByBrand.Acquirier.Name == "Cielo")
            {
                #region Acquirer Cielo


                CieloServiceAgent cieloServiceAgent = new CieloServiceAgent();

                Model.API.Request.Acquirer.Cielo.PaymentRequest paymentRequest = new Model.API.Request.Acquirer.Cielo.PaymentRequest();

                paymentRequest.MerchantOrderId = shopkeeper.ObjectID.ToString();
                paymentRequest.Customer        = new Model.API.Request.Acquirer.Cielo.Customer()
                {
                    Name = shopkeeper.Name
                };

                paymentRequest.Payment = new RX.Gateway.Model.API.Request.Acquirer.Cielo.Payment()
                {
                    Type           = "CreditCard",
                    Amount         = Convert.ToInt32(creditCardTransaction.AmountInCents),
                    Installments   = creditCardTransaction.InstallmentCount,
                    SoftDescriptor = creditCardTransaction.OrderNumber,
                    CreditCard     = new Model.API.Request.Acquirer.Cielo.CreditCard()
                    {
                        CardNumber     = creditCardTransaction.CreditCardNumber,
                        Holder         = creditCardTransaction.HolderName,
                        ExpirationDate = string.Format("{0}/{1}", creditCardTransaction.ExpMonth, creditCardTransaction.ExpYear),
                        SecurityCode   = creditCardTransaction.SecurityCode,
                        Brand          = creditCardTransaction.Brand == Model.Enums.ECreditCardBrand.Visa ? "Visa" : "Master"
                    }
                };

                Model.API.Response.Acquirer.Cielo.PaymentResponse paymentResponse = cieloServiceAgent.MakeCreditCardTransaction(paymentRequest);


                #endregion
            }
            else if (acquirierByBrand.Acquirier.Name == "Stone")
            {
                #region Acquirer Stone

                GatewayApiClient.DataContracts.EnumTypes.CreditCardBrandEnum brand = GatewayApiClient.DataContracts.EnumTypes.CreditCardBrandEnum.Visa;

                switch (creditCardTransaction.Brand)
                {
                case Model.Enums.ECreditCardBrand.Visa:
                    brand = GatewayApiClient.DataContracts.EnumTypes.CreditCardBrandEnum.Visa;
                    break;

                case Model.Enums.ECreditCardBrand.Master:
                    brand = GatewayApiClient.DataContracts.EnumTypes.CreditCardBrandEnum.Mastercard;
                    break;
                }



                var transaction = new GatewayApiClient.DataContracts.CreditCardTransaction()
                {
                    AmountInCents = creditCardTransaction.AmountInCents,
                    CreditCard    = new GatewayApiClient.DataContracts.CreditCard()
                    {
                        CreditCardBrand  = brand,
                        CreditCardNumber = creditCardTransaction.CreditCardNumber,
                        ExpMonth         = creditCardTransaction.ExpMonth,
                        ExpYear          = creditCardTransaction.ExpYear,
                        HolderName       = creditCardTransaction.HolderName,
                        SecurityCode     = creditCardTransaction.SecurityCode
                    },
                    InstallmentCount = creditCardTransaction.InstallmentCount
                };

                // Cria requisição.
                var createSaleRequest = new GatewayApiClient.DataContracts.CreateSaleRequest()
                {
                    // Adiciona a transação na requisição.
                    CreditCardTransactionCollection = new System.Collections.ObjectModel.Collection <GatewayApiClient.DataContracts.CreditCardTransaction>(new GatewayApiClient.DataContracts.CreditCardTransaction[] { transaction }),
                    Order = new GatewayApiClient.DataContracts.Order()
                    {
                        OrderReference = creditCardTransaction.OrderNumber
                    }
                };


                StoneServiceAgent stoneServiceAgent = new StoneServiceAgent();

                var salesResponse = stoneServiceAgent.MakeCreditCardTransaction(createSaleRequest);



                #endregion
            }
            else
            {
                return(new TransactionResponse(null, Model.API.EStatusResponse.Error, "Não há adiquirente relacionado a bandeira : " + creditCardTransaction.Brand.ToString()));
            }



            //RxGatewayDbContext dbContext = new RxGatewayDbContext();
            // dbContext.InsertInitialData();


            //storeService.Insert(new Store()
            //{
            //    Name = "Eudora",
            //    ObjectID = System.Guid.NewGuid()
            //});

            unityOfWork.Salve();


            //db.Transactions.Add(transactionRequest.Transaction);
            //db.SaveChanges();
            //RxGatewayDbContext.InsertInitialData();



            //#region AntiFraud ClearSale

            //ClearSaleServiceAgent clearSaleServiceAgent = new ClearSaleServiceAgent();
            //Credentials login = new Credentials()
            //{
            //    Apikey = "",
            //    ClientID = "",
            //    ClientSecret = ""
            //};

            //ResponseAuth responseAuth = clearSaleServiceAgent.Login(login);

            //RequestSend requestSend = new RequestSend()
            //{
            //    ApiKey = login.Apikey,
            //    LoginToken = responseAuth.Token.Value,
            //    Orders = null,// orders
            //    AnalysisLocation = "BR"
            //};

            //ResponseSend responseSend = clearSaleServiceAgent.Send(requestSend);

            //clearSaleServiceAgent.Logout(login);

            //#endregion



            // Coloque a sua MerchantKey aqui.
            // Guid merchantKey = Guid.Parse("F2A1F485-CFD4-49F5-8862-0EBC438AE923");



            TransactionResponse transactionResponse = new TransactionResponse(null, Model.API.EStatusResponse.Success, "");


            return(transactionResponse);
        }