Example #1
0
        public IActionResult TransactionStatus(PaymentTransactionStatus transactionStatus)
        {
            var model = new PaymentTransactionStatus();

            model = transactionStatus;
            return(View(model));
        }
Example #2
0
 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");
            }
        }
Example #4
0
        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);
 }
Example #6
0
        public static void SendStatusChanged(string transactionToken, PaymentTransactionStatus status, decimal amount)
        {
            IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <PaymentTransactionHub>();

            hubContext.Clients.Group(transactionToken).onStatusChanged(transactionToken, status, amount);
        }