Ejemplo n.º 1
0
        public IActionResult PostData([FromBody] Transactions value)
        {
            if (value != null)
            {
                if (value.ReferenceId != null)//Kiểm tra có tồn tại trên api Striper thì dùng lệnh update
                {
                }
                var rescoure = StripeHelpers.RequestCharge(value);

                Transactions trans = new Transactions()
                {
                    ID            = Guid.NewGuid(),
                    Currency      = rescoure.Currency,
                    OrderId       = rescoure.OrderId,
                    ReferenceId   = rescoure.Id,
                    CreatedDate   = DateTime.Now,
                    OrderAmount   = rescoure.Amount,
                    Description   = rescoure.Description,
                    PaymentMethod = rescoure.PaymentMethodId,
                    Status        = rescoure.Status,
                    BackUrl       = rescoure.ReceiptUrl
                };
                _TransactionsService.InsertTransactions(trans);
                return(Ok(rescoure));
            }
            return(Ok("Fail"));
        }
Ejemplo n.º 2
0
        public ActionResult RequestPayment([FromBody] TransactionRequestParams requestParams)
        {
            Transactions model = new Transactions();

            model.BackUrl       = requestParams.BackUrl;
            model.Currency      = requestParams.Currency;
            model.Description   = requestParams.Description;
            model.ID            = requestParams.ID;
            model.OrderAmount   = requestParams.OrderAmount;
            model.OrderId       = requestParams.OrderId;
            model.PaymentMethod = requestParams.PaymentMethod.ToUpper();

            APIResponseData responseData = new APIResponseData();

            responseData.StatusCode = 0;
            responseData.Message    = "Failed.";

            if (model == null)
            {
                responseData.Message = "Value is required.";
                goto skipToReturn;
            }

            try
            {
                if (model != null)
                {
                    if (model.ReferenceId != null)//Kiểm tra có tồn tại trên api Striper thì dùng lệnh update
                    {
                    }
                }

                model.CreatedDate          = DateTime.Now;
                model.OrderAmountRemaining = model.OrderAmount;
                _TransactionsService.InsertTransactions(model);

                if (model.PaymentMethod == Common.DTO.PaymentMethod.Partial.ToUpper())
                {
                    DateTime startDate = new DateTime(model.CreatedDate.Value.Year, model.CreatedDate.Value.Month, model.CreatedDate.Value.Day);

                    var transactionItems = new List <TransactionItems> {
                    };
                    var item0            = new TransactionItems {
                        OrderNo = 0, PayDate = startDate, PayPercent = 30, PayAmount = Convert.ToDecimal(((30 * model.OrderAmount.Value) / 100).ToString("#.##"))
                    };
                    var item1 = new TransactionItems {
                        OrderNo = 1, PayDate = startDate.AddDays(2), PayPercent = 35, PayAmount = Convert.ToDecimal(((35 * model.OrderAmount.Value) / 100).ToString("#.##"))
                    };
                    var item2 = new TransactionItems {
                        OrderNo = 2, PayDate = startDate.AddDays(4), PayPercent = 35, PayAmount = Convert.ToDecimal(((35 * model.OrderAmount.Value) / 100).ToString("#.##"))
                    };

                    transactionItems.Add(item0);
                    transactionItems.Add(item1);
                    transactionItems.Add(item2);

                    transactionItems.ForEach(x => { x.CreatedDate = DateTime.Now; x.TransactionId = model.ID; });

                    _TransactionsService.InsertTransactionItems(transactionItems);
                }

                responseData.Message     = "Successfully.";
                responseData.StatusCode  = 1;
                responseData.Result.Data = new
                {
                    TransactionId = model.ID,
                    PaymentMethod = model.PaymentMethod
                };
            }
            catch (Exception ex)
            {
                responseData.Message    = "Something went wrong, please try again.";
                responseData.StatusCode = 0;

                EmailHelpers.SendEmail(new Common.DTO.ErrorInfo()
                {
                    Section   = $"AQ RequestPayment",
                    Exception = ex
                });
            }

skipToReturn:        //label use to force return
            return(Ok(responseData));
        }