コード例 #1
0
            //--------------------- BVG --------------------------
            public void TransactionBVG()
            {
                TransactionBVG trasactionBVG = new TransactionBVG();

                try
                {
                    trasactionBVG = connector.Transaction(GetTransaction());
                    printDictionary(trasactionBVG.toDictionary(), "");
                }
                catch (EmptyFieldException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (ResponseException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (ConnectionException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
コード例 #2
0
        public static TransactionBVG ParseJsonToTransaction(string json)
        {
            TransactionBVG transaction = new TransactionBVG();

            if (json != null && json.Equals(""))
            {
                string message = "Response vacio o nulo";
                throw new ResponseException(message);
            }

            Dictionary <string, object> result = ParseJsonToDictionary(json);

            if (result.ContainsKey(ElementNames.BVG_ERROR_CODE))
            {
                string message = (string)result[ElementNames.BVG_ERROR_CODE] + " - " + (string)result[ElementNames.BVG_ERROR_MESSAGE];
                throw new ResponseException(message);
            }

            if (result.ContainsKey("error"))
            {
                var    status  = result["status"];
                string message = status + " - " + (string)result["message"];
                throw new ResponseException(message);
            }

            transaction.SetChannel((string)result[BVG_CHANNEL]);
            //transaction.setUrlHibridFormResuorces((string)result[ElementNames.BVG_URL_HIBRID_FROM_RESOURCES]);
            transaction.SetPublicRequestKeys((string)result[ElementNames.BVG_PUBLIC_REQUEST_KEY]);
            //transaction.setRequestKey((string)result[ElementNames.BVG_REQUEST_KEY]);
            //transaction.setTransactionID((string)result[ElementNames.BVG_TRANSACTION_ID_RESPONSE]);
            transaction.SetMerchantID((string)result[ElementNames.BVG_MERCHANTID]);

            return(transaction);
        }
コード例 #3
0
        public TransactionBVG Transaction(TransactionBVG transaction)
        {
            string URL = endpoint + BVTP_TRANSACTION;

            string json = OperationsParserBVG.GenerateTransactionJson(transaction);

            string result = ExecuteRequest(json, URL, METHOD_POST, true);

            return(OperationsParserBVG.ParseJsonToTransaction(result));
        }
コード例 #4
0
        public void TransactionOKTest()
        {
            BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionOkResponse());

            TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransaction());

            Assert.AreNotEqual(null, response);

            Assert.AreEqual(false, String.IsNullOrEmpty(response.GetPublicRequestKey()));
            Assert.AreEqual(false, String.IsNullOrEmpty(response.GetMerchantID()));
            Assert.AreEqual(false, String.IsNullOrEmpty(response.GetChannel()));
        }
コード例 #5
0
        public static string GenerateTransactionJson(TransactionBVG transaction)
        {
            Dictionary <string, object> aux = new Dictionary <string, object>();

            aux.Add(ElementNames.BVG_GENERAL_DATA, transaction.GetGeneralData());
            aux.Add(ElementNames.BVG_OPERATION_DATA, transaction.GetOperationData());
            aux.Add(ElementNames.BVG_TECHNICAL_DATA, transaction.GetTecnicalData());

            string transactionJson = JsonConvert.SerializeObject(aux, Newtonsoft.Json.Formatting.Indented);

            return(transactionJson);
        }
コード例 #6
0
        public TransactionBVG Transaction(TransactionBVG transaction)
        {
            TransactionBVG      result = transaction;
            TransactionValidate tv     = new TransactionValidate();

            transaction.GetGeneralData().Add(BVG_CHANNEL, "BVTP");
            if (tv.ValidateTransaction(transaction))
            {
                result = bvgClient.Transaction(transaction);
            }

            return(result);
        }
        public static TransactionBVG GetTransaction()
        {
            Dictionary <string, Object> generalData = new Dictionary <string, Object>();

            generalData.Add(ElementNames.BVG_MERCHANT, "41702");
            generalData.Add(ElementNames.BVG_SECURITY, "TODOPAGO 8A891C0676A25FBF052D1C2FFBC82DEE");
            generalData.Add(ElementNames.BVG_OPERATION_DATE_TIME, "20170308041300");
            generalData.Add(ElementNames.BVG_REMOTE_IP_ADDRESS, "192.168.11.87");

            Dictionary <string, Object> operationData = new Dictionary <string, Object>();

            operationData.Add(ElementNames.BVG_OPERATION_TYPE, "Compra");
            operationData.Add(ElementNames.BVG_OPERATION_ID, "12345");
            operationData.Add(ElementNames.BVG_CURRENCY_CODE, "032");
            operationData.Add(ElementNames.BVG_CONCEPT, "compra");
            operationData.Add(ElementNames.BVG_AMOUNT, "10,99");

            List <string> availablePaymentMethods = new List <string>();

            availablePaymentMethods.Add("1");
            availablePaymentMethods.Add("42");
            operationData.Add(ElementNames.BVG_AVAILABLE_PAYMENT_METHODS, availablePaymentMethods);

            List <string> availableBanks = new List <string>();

            availableBanks.Add("6");
            availableBanks.Add("24");
            availableBanks.Add("29");
            operationData.Add(ElementNames.BVG_AVAILABLE_BANK, availableBanks);

            Dictionary <string, Object> buyerPreselection = new Dictionary <string, Object>();

            buyerPreselection.Add(ElementNames.BVG_PAYMENT_METHODS_ID, "42");
            buyerPreselection.Add(ElementNames.BVG_BANK_ID, "6");
            operationData.Add(ElementNames.BVG_BUYER_PRESELECTION, buyerPreselection);

            Dictionary <string, Object> technicalData = new Dictionary <string, Object>();

            technicalData.Add(ElementNames.BVG_SDK, "Net");
            technicalData.Add(ElementNames.BVG_SDK_VERSION, "1.0");
            technicalData.Add(ElementNames.BVG_LANGUAGE_VERSION, "3.5");
            technicalData.Add(ElementNames.BVG_PLUGIN_VERSION, "1.0");
            technicalData.Add(ElementNames.BVG_ECOMMERCE_NAME, "Bla");
            technicalData.Add(ElementNames.BVG_ECOMMERCE_VERSION, "3.1");
            technicalData.Add(ElementNames.BVG_CM_VERSION, "2.4");

            TransactionBVG trasactionBVG = new TransactionBVG(generalData, operationData, technicalData);

            return(trasactionBVG);
        }
        public Boolean ValidateTransaction(TransactionBVG transaction)
        {
            Boolean valid = true;
            Dictionary <string, Object> operationData = transaction.GetOperationData();
            Dictionary <string, Object> generalData   = transaction.GetGeneralData();
            Dictionary <string, Object> tecnicalData  = transaction.GetTecnicalData();

            valid = ValidateGeneralData(generalData) && ValidateOperationData(operationData);
            valid = valid && ValidateFormatTransaction(generalData, operationData);

            valid = valid && ValidateInvalidCharacters(generalData, operationData, tecnicalData);

            return(valid);
        }
コード例 #9
0
        public void TransactionFailValidationTest()
        {
            BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionOkResponse());

            TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransactionWrongField());
        }
コード例 #10
0
        public void TransactionFailValidationRequiredTest()
        {
            BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionFailVendedorResponse());

            TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransactionWithoutField());
        }
コード例 #11
0
        public void TransactionFailVendedorTest()
        {
            BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionFailVendedorResponse());

            TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransaction());
        }
コード例 #12
0
        public void TransactionWithoutFieldTest()
        {
            BvgConnectorMock connector = GetConnector(TransactionDataProvider.GetTransactionFailResponse());

            TransactionBVG response = connector.Transaction(TransactionDataProvider.GetTransaction());
        }