public IActionResult TransactionStatus(PaymentTransactionStatus transactionStatus) { var model = new PaymentTransactionStatus(); model = transactionStatus; return(View(model)); }
public PaymentTransaction(Guid orderId, Guid paymentId, decimal totalPrice, PaymentTransactionStatus status) { OrderId = orderId; PaymentId = paymentId; TotalPrice = totalPrice; Status = status; }
public static bool GetPaymentTransactionStatusValue(this PaymentTransactionStatus value) { switch (value) { case PaymentTransactionStatus.Success: return(true); case PaymentTransactionStatus.Fail: return(false); default: throw new ArgumentOutOfRangeException("value"); } }
public IActionResult PaymentStatus(IFormCollection response, string au) { var userprofile = new AuthenticateResponse(); var _user = new AuthenticateResponse(); if (!String.IsNullOrEmpty(au)) { var base64EncodedBytes = System.Convert.FromBase64String(au); var decodedJson = System.Text.Encoding.UTF8.GetString(base64EncodedBytes); userprofile = JsonConvert.DeserializeObject <AuthenticateResponse>(decodedJson); _user = userprofile; } //var _user = HttpContext.Session.Get<AuthenticateResponse>("ArmUser"); //if (_user == null) //{ // HttpContext.Session.Set("ArmUser", userprofile); //} var getClientBalance = _client.GetTotalAccountBalance(_user.MembershipKey); if (getClientBalance != null) { HttpContext.Session.Set("ArmClientBalance", getClientBalance); } var trResponse = response; var transactionRef = trResponse["arm_txnref"]; var trStatusCode = trResponse["arm_tranx_status_code"]; var trPayRef = trResponse["arm_payref"]; var trAmount = trResponse["arm_tranx_amt"]; var trStatusMsg = trResponse["arm_tranx_status_msg"]; var trCurrency = trResponse["arm_tranx_curr"]; var trCustId = trResponse["arm_cust_id"]; var trPaymentParams = trResponse["arm_payment_params"]; if (trResponse != null) { var logInfo = $@"Response from the payment gateway : Status Code:{trStatusCode} --- Status Message: {trStatusMsg}"; _logger.LogInformation(logInfo); } var transactionStatus = new PaymentTransactionStatus(); if (!String.IsNullOrEmpty(transactionRef)) { var transactionquery = db.ProcessPayments.Where(s => s.ArmTranxId.Equals(transactionRef)).FirstOrDefault <ProcessPayments>(); var inResponse = new AdditionalInvResponse(); if (trStatusCode == "00") { var paymentRequest = transactionquery.PaymentRequest; var investmentRequest = new InvestmentRequest(); investmentRequest = JsonConvert.DeserializeObject <InvestmentRequest>(paymentRequest); var orderpayment = investmentRequest.OrderPayment; orderpayment.PaymentReference = transactionRef; orderpayment.PaymentMethod = trPayRef; investmentRequest.OrderPayment = orderpayment; var payload = JsonConvert.SerializeObject(investmentRequest, Formatting.Indented); transactionquery.PaymentRequest = payload; //make API call to AddSales endpoint inResponse = _clientService.AddSales(investmentRequest); //update ProcessPayment table to reflect changes. db.ProcessPayments.Update(transactionquery); db.SaveChanges(); } if (trResponse != null || inResponse != null) { //persist PaymentTransactions record to the DB transactionStatus = new PaymentTransactionStatus() { TransactionReference = transactionRef, PaymentReference = trPayRef, TransactionStatusCode = trStatusCode, TransactionAmount = Convert.ToDecimal(trAmount), TransactionStatusMessage = trStatusMsg, TransactionCurrency = trCurrency, CustomerId = trCustId, PaymentParameters = trPaymentParams, DateSubmitted = DateTime.Now }; db.PaymentTransactionStatus.Add(transactionStatus); db.SaveChanges(); } } return(View("TransactionStatus", transactionStatus)); }
public static PaymentTransactionStatus SetPaymentTransactionStatusValue(this PaymentTransactionStatus key, bool value) { return(value == true ? PaymentTransactionStatus.Success : PaymentTransactionStatus.Fail); }
public static void SendStatusChanged(string transactionToken, PaymentTransactionStatus status, decimal amount) { IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <PaymentTransactionHub>(); hubContext.Clients.Group(transactionToken).onStatusChanged(transactionToken, status, amount); }