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); } }
// 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); } }
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 })); } }