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