public async Task Test_GetTransactionDetailsById()
        {
            // Initialize Xente class
            XentePayment xenteGateWay = TestHelper.InitializeXenteGateWay();


            // Create the transaction credentials
            TransactionRequest transactionRequest = new TransactionRequest
            {
                PaymentProvider   = "MTNMOBILEMONEYUG",
                Amount            = "800",
                Message           = "Loan payment",
                CustomerId        = "256778418592",
                CustomerPhone     = "256778418592",
                CustomerEmail     = "*****@*****.**",
                CustomerReference = "256778418592",
                BatchId           = "Batch001",
                RequestId         = DateTime.Now.ToString(),
                Metadata          = "extra information about transaction"
            };

            try
            {
                TransactionProcessingResponse transactionProcessingResponse = await xenteGateWay.Transactions.CreateTransaction(transactionRequest);

                Assert.IsNotNull(transactionProcessingResponse.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemplo n.º 2
0
        // Create Transaction using Xente Payment SDK
        public static async Task CreateTransactionAsync()
        {
            // Create transaction request information
            TransactionRequest transactionRequest = new TransactionRequest
            {
                PaymentProvider   = "MTNMOBILEMONEYUG",
                Amount            = "800",
                Message           = "Loan payment",
                CustomerId        = "256778418592",
                CustomerPhone     = "256778418592",
                CustomerEmail     = "*****@*****.**",
                CustomerReference = "256778418592",
                BatchId           = "Batch001",
                RequestId         = Guid.NewGuid().ToString().Replace("-", string.Empty),
                Metadata          = "extra information about transaction"
            };

            try
            {
                TransactionProcessingResponse transactionProcessingResponse = await xentePaymentGateway.Transactions.CreateTransaction(transactionRequest);

                Console.WriteLine("Message = {0}", transactionProcessingResponse.Message);
                Console.WriteLine("Code = {0}", transactionProcessingResponse.Code);
                Console.WriteLine("Correlation ID = {0}", transactionProcessingResponse.CorrelationId);
                Console.WriteLine("...............................................");
                Console.WriteLine("Data Information");
                Console.WriteLine("Message = {0}", transactionProcessingResponse.Data.Message);
                Console.WriteLine("Batch ID = {0}", transactionProcessingResponse.Data.BatchId);
                Console.WriteLine("Transaction ID = {0}", transactionProcessingResponse.Data.TransactionId);
                Console.WriteLine("Created On = {0}", transactionProcessingResponse.Data.CreatedOn);
                Console.WriteLine("Request ID = {0}", transactionProcessingResponse.Data.RequestId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Exemplo n.º 3
0
        public async Task <IActionResult> CreateTransaction(BuyViewModel model)
        {
            //Authenication Credentias
            string apikey = config["ApiKey"];

            string password = config["Password"];

            const string mode = "sandbox"; // "live"


            // Initialize the Xente class
            XentePayment xenteGateWay = new XentePayment(apikey, password, mode);


            // Create the transaction request

            // Decide which payment provider to select
            string paymentProvider = "MTNMOBILEMONEYUG";

            string amount = model.Price;

            string message = $"Payment for {model.ProductName}";

            string customerId = GetCurrentUserAsync().GetAwaiter().GetResult().Id;

            string customerPhone = model.PhoneNumber;

            string customerEmail     = model.Email;
            string customerReference = model.PhoneNumber;

            string batchId = "Batch001";

            string requestId = Guid.NewGuid().ToString();

            // This is optional parameter
            string metadata = "extra information about transaction";

            try
            {
                TransactionProcessingResponse transactionProcessingResponse = await xenteGateWay.Transaction.CreateTransaction(
                    paymentProvider, amount, message, customerId, customerPhone, customerEmail, customerReference, batchId, requestId, metadata

                    );

                logger.LogInformation($"Message = {transactionProcessingResponse.Message}");
                logger.LogInformation($"Code = {transactionProcessingResponse.Code}");
                logger.LogInformation($"CorrelationId = {transactionProcessingResponse.CorrelationId}");
                logger.LogInformation($"Data Message = {transactionProcessingResponse.Data.Message}");
                logger.LogInformation($"BatchId = {transactionProcessingResponse.Data.BatchId}");
                logger.LogInformation($"TransactionId = {transactionProcessingResponse.Data.TransactionId}");
                logger.LogInformation($"Created On = {transactionProcessingResponse.Data.CreatedOn}");
                logger.LogInformation($"Request ID = {transactionProcessingResponse.Data.RequestId}");

                logger.LogInformation("{@TransactionProcesingResponse}", transactionProcessingResponse);
                return(View("Processing", transactionProcessingResponse));
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);
                logger.LogError(ex.StackTrace);
                return(View("Error", new { Message = ex.Message }));
            }
        }