public override bool UpdatePayMent(PaymentModel model) { using (SqlConnection cn = new SqlConnection(this.ConnectionString)) { SqlCommand cmd = new SqlCommand("proc_UPDATE_PAYMENT", cn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@ID", SqlDbType.Int).Value = model.Id; cmd.Parameters.Add("@NAME", SqlDbType.NVarChar).Value = model.Name; cmd.Parameters.Add("@STATUS", SqlDbType.Int).Value = model.Status; cn.Open(); int re = ExecuteNonQuery(cmd); return (re == 1); } }
/// <summary> /// This method is called before the order is completed. This method should check all the parameters /// and validate the credit card or other parameters accepted. /// </summary> /// <param name="form">The form.</param> /// <param name="model">The model.</param> /// <returns>payment</returns> public Payment PreProcess(OrderForm form, PaymentModel model) { var cardPayment = new CreditCardPayment { BillingAddressId = form.BillingAddressId, CreditCardCustomerName = model.CustomerName, CreditCardNumber = model.CardNumber, CreditCardExpirationMonth = model.ExpirationMonth, CreditCardExpirationYear = model.ExpirationYear, CreditCardSecurityCode = model.CardVerificationNumber, CreditCardType = model.CardType, PaymentType = PaymentType.CreditCard.GetHashCode(), PaymentTypeId = 0, PaymentMethodName = model.DisplayName, PaymentMethodId = model.Id, Amount = form.Total }; return cardPayment; }
public override OrderDetailModel GetByIdPayMent(int id) { using (SqlConnection cn = new SqlConnection(this.ConnectionString)) { SqlCommand cmd = new SqlCommand("proc_GET_PAYMENT_BY_ID", cn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@ID", SqlDbType.Int).Value = id; cn.Open(); IDataReader reader = ExecuteReader(cmd, CommandBehavior.SingleRow); if (reader.Read()) { PaymentModel model = new PaymentModel { (int)reader["id"], reader["Name"].ToString, (int)reader["STATUS"] }; } else return null; } }
internal bool SetPaymentType(PaymentModel objReq) { using (var db = new WizzDataContext()) { var userDetails = db.tblUsers.FirstOrDefault(x => x.pkUserId == Convert.ToInt64(objReq.userId) && x.isDelete == false); if (userDetails != null) { userDetails.paymentType = Convert.ToInt16(objReq.paymentType); db.SubmitChanges(); return true; } else { return false; } } }
private async Task <PaymentModel> GetInvoiceModel(string invoiceId, PaymentMethodId paymentMethodId) { var invoice = await _InvoiceRepository.GetInvoice(invoiceId); if (invoice == null) { return(null); } var store = await _StoreRepository.FindStore(invoice.StoreId); bool isDefaultPaymentId = false; if (paymentMethodId == null) { paymentMethodId = store.GetDefaultPaymentId(_NetworkProvider); isDefaultPaymentId = true; } BTCPayNetworkBase network = _NetworkProvider.GetNetwork <BTCPayNetworkBase>(paymentMethodId.CryptoCode); if (network == null && isDefaultPaymentId) { //TODO: need to look into a better way for this as it does not scale network = _NetworkProvider.GetAll().OfType <BTCPayNetwork>().FirstOrDefault(); paymentMethodId = new PaymentMethodId(network.CryptoCode, PaymentTypes.BTCLike); } if (invoice == null || network == null) { return(null); } if (!invoice.Support(paymentMethodId)) { if (!isDefaultPaymentId) { return(null); } var paymentMethodTemp = invoice.GetPaymentMethods() .Where(c => paymentMethodId.CryptoCode == c.GetId().CryptoCode) .FirstOrDefault(); if (paymentMethodTemp == null) { paymentMethodTemp = invoice.GetPaymentMethods().First(); } network = paymentMethodTemp.Network; paymentMethodId = paymentMethodTemp.GetId(); } var paymentMethod = invoice.GetPaymentMethod(paymentMethodId); var paymentMethodDetails = paymentMethod.GetPaymentMethodDetails(); var dto = invoice.EntityToDTO(); var cryptoInfo = dto.CryptoInfo.First(o => o.GetpaymentMethodId() == paymentMethodId); var storeBlob = store.GetStoreBlob(); var currency = invoice.ProductInformation.Currency; var accounting = paymentMethod.Calculate(); ChangellySettings changelly = (storeBlob.ChangellySettings != null && storeBlob.ChangellySettings.Enabled && storeBlob.ChangellySettings.IsConfigured()) ? storeBlob.ChangellySettings : null; CoinSwitchSettings coinswitch = (storeBlob.CoinSwitchSettings != null && storeBlob.CoinSwitchSettings.Enabled && storeBlob.CoinSwitchSettings.IsConfigured()) ? storeBlob.CoinSwitchSettings : null; var changellyAmountDue = changelly != null ? (accounting.Due.ToDecimal(MoneyUnit.BTC) * (1m + (changelly.AmountMarkupPercentage / 100m))) : (decimal?)null; var paymentMethodHandler = _paymentMethodHandlerDictionary[paymentMethodId]; var model = new PaymentModel() { CryptoCode = network.CryptoCode, RootPath = this.Request.PathBase.Value.WithTrailingSlash(), OrderId = invoice.OrderId, InvoiceId = invoice.Id, DefaultLang = storeBlob.DefaultLang ?? "en", HtmlTitle = storeBlob.HtmlTitle ?? "CoinSmart Invoice", CustomCSSLink = storeBlob.CustomCSS, CustomLogoLink = storeBlob.CustomLogo, CryptoImage = Request.GetRelativePathOrAbsolute(paymentMethodHandler.GetCryptoImage(paymentMethodId)), BtcAddress = paymentMethodDetails.GetPaymentDestination(), BtcDue = accounting.Due.ToString(), OrderAmount = (accounting.TotalDue - accounting.NetworkFee).ToString(), OrderAmountFiat = OrderAmountFromInvoice(network.CryptoCode, invoice.ProductInformation), CustomerEmail = invoice.RefundMail, RequiresRefundEmail = storeBlob.RequiresRefundEmail, ShowRecommendedFee = storeBlob.ShowRecommendedFee, FeeRate = paymentMethodDetails.GetFeeRate(), ExpirationSeconds = Math.Max(0, (int)(invoice.ExpirationTime - DateTimeOffset.UtcNow).TotalSeconds), MaxTimeSeconds = (int)(invoice.ExpirationTime - invoice.InvoiceTime).TotalSeconds, MaxTimeMinutes = (int)(invoice.ExpirationTime - invoice.InvoiceTime).TotalMinutes, ItemDesc = invoice.ProductInformation.ItemDesc, Rate = ExchangeRate(paymentMethod), MerchantRefLink = invoice.RedirectURL?.AbsoluteUri ?? "/", RedirectAutomatically = invoice.RedirectAutomatically, StoreName = store.StoreName, PeerInfo = (paymentMethodDetails as LightningLikePaymentMethodDetails)?.NodeInfo, TxCount = accounting.TxRequired, BtcPaid = accounting.Paid.ToString(), #pragma warning disable CS0618 // Type or member is obsolete Status = invoice.StatusString, #pragma warning restore CS0618 // Type or member is obsolete NetworkFee = paymentMethodDetails.GetNextNetworkFee(), IsMultiCurrency = invoice.GetPayments().Select(p => p.GetPaymentMethodId()).Concat(new[] { paymentMethod.GetId() }).Distinct().Count() > 1, ChangellyEnabled = changelly != null, ChangellyMerchantId = changelly?.ChangellyMerchantId, ChangellyAmountDue = changellyAmountDue, CoinSwitchEnabled = coinswitch != null, CoinSwitchAmountMarkupPercentage = coinswitch?.AmountMarkupPercentage ?? 0, CoinSwitchMerchantId = coinswitch?.MerchantId, CoinSwitchMode = coinswitch?.Mode, StoreId = store.Id, AvailableCryptos = invoice.GetPaymentMethods() .Where(i => i.Network != null) .Select(kv => { var availableCryptoPaymentMethodId = kv.GetId(); var availableCryptoHandler = _paymentMethodHandlerDictionary[availableCryptoPaymentMethodId]; return(new PaymentModel.AvailableCrypto() { PaymentMethodId = kv.GetId().ToString(), CryptoCode = kv.Network?.CryptoCode ?? kv.GetId().CryptoCode, PaymentMethodName = availableCryptoHandler.GetPaymentMethodName(availableCryptoPaymentMethodId), IsLightning = kv.GetId().PaymentType == PaymentTypes.LightningLike, CryptoImage = Request.GetRelativePathOrAbsolute(availableCryptoHandler.GetCryptoImage(availableCryptoPaymentMethodId)), Link = Url.Action(nameof(Checkout), new { invoiceId = invoiceId, paymentMethodId = kv.GetId().ToString() }) }); }).Where(c => c.CryptoImage != "/") .OrderByDescending(a => a.CryptoCode == "BTC").ThenBy(a => a.PaymentMethodName).ThenBy(a => a.IsLightning ? 1 : 0) .ToList() }; paymentMethodHandler.PreparePaymentModel(model, dto, storeBlob); if (model.IsLightning && storeBlob.LightningAmountInSatoshi && model.CryptoCode == "Sats") { model.Rate = _CurrencyNameTable.DisplayFormatCurrency(paymentMethod.Rate / 100_000_000, paymentMethod.ParentEntity.ProductInformation.Currency); } model.UISettings = paymentMethodHandler.GetCheckoutUISettings(); model.PaymentMethodId = paymentMethodId.ToString(); var expiration = TimeSpan.FromSeconds(model.ExpirationSeconds); model.TimeLeft = expiration.PrettyPrint(); return(model); }
public IHttpActionResult Post(PaymentModel baseRequest) { var response = service.SavePayment(baseRequest); return(Ok(response)); }
public ActionResult SubmitPayment(PaymentModel paymentModel) { paymentModel.IsPaymentCurrentlyBeingProcessed = true; Session[Helpers.IsPaymentCurrentlyBeingProcessedSessionKey] = true; return(View("PaymentForm", paymentModel)); }
public abstract void PreparePaymentModel(PaymentModel model, InvoiceResponse invoiceResponse, StoreBlob storeBlob);
public async Task <PaymentDto> Handle(CreatePaymentCommand request, CancellationToken cancellationToken) { var input = request.Data.Attributes; var payment = new PaymentModel() { payment_type = input.payment_type, gross_amount = input.gross_amount, bank = input.bank, order_id = input.order_id }; _context.AllPayments.Add(payment); await _context.SaveChangesAsync(); var p = _context.AllPayments.First(x => x.transaction_status == input.transaction_status); var target = new TargetCommand() { id = p.id }; var client = new HttpClient(); var command = new NotificationAndLogsModel() { title = "rabbit-test", message = "this is only testing", type = "email", from = 98780, target = new List <TargetCommand>() { target } }; var attributes = new Attribute <NotificationAndLogsModel>() { Attributes = command }; var httpContent = new CommandDto <NotificationAndLogsModel>() { Data = attributes }; var jsonObject = JsonConvert.SerializeObject(httpContent); //var content = new StringContent(jsonObject, Encoding.UTF8, "application/json"); //await client.PostAsync("http://localhost:7800/notification", content); var factory = new ConnectionFactory() { HostName = "notification-container" }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.ExchangeDeclare(exchange: "halonot", "fanout"); channel.QueueDeclare(queue: "notification", durable: true, exclusive: false, autoDelete: false, arguments: null); channel.QueueBind("notification", "halonot", routingKey: ""); var body = Encoding.UTF8.GetBytes(jsonObject); var properties = channel.CreateBasicProperties(); properties.Persistent = true; channel.BasicPublish(exchange: "halonot", routingKey: "", basicProperties: null, body: body); Console.WriteLine("Message has sent"); return(new PaymentDto { message = "Success add a payment data", success = true }); } }
public async Task <IActionResult> SavePayment([FromBody] PaymentModel payment) { var response = await _paymentMode.SavePayementDetails(payment); return(Ok(response)); }
/// <summary> /// Validates input data for the control. In case of Credit card pre authentication will be the best way to /// validate. The error message if any should be displayed within a control itself. /// </summary> /// <param name="model">The model.</param> /// <returns>Returns false if validation is failed.</returns> public bool ValidateData(PaymentModel model) { return true; }
public async Task RequestForAdvancePaymentTest() { var customer = new CustomerModel() { Name = "Olavo Neto", Email = "*****@*****.**", }; var registeredCustomer = await DbContext.Customers.FirstOrDefaultAsync(); var waiToken = registeredCustomer.MapToWhoAmI().EncryptToken(); customer.Id = registeredCustomer.Id; var paymentModel = new PaymentModel() { Customer = customer, Amount = 100, InstalmentsCount = 5, CardNumber = "5555111122223333", CardExpirationDate = "08/2021", CardName = "OLAVO DE SOUZA ROCHA NETO", CardSecurityNumber = "558", AuthToken = waiToken }; var before = DateTime.Now; var paymentModel2 = new PaymentModel() { Customer = customer, Amount = 150, InstalmentsCount = 5, CardNumber = "5555111122223333", CardExpirationDate = "08/2021", CardName = "OLAVO DE SOUZA ROCHA NETO", CardSecurityNumber = "558", AuthToken = waiToken }; PaymentController controller = new PaymentController(DbContext, FakeAcquirer, FakeAccount, FakeLogger); await controller.ProcessPayment(paymentModel); await controller.ProcessPayment(paymentModel2); var paymentListModel = new PaymentListModel() { AuthToken = waiToken }; var firstPaymentForAdvance = new AdvanceListModel() { AuthToken = waiToken, Payments = new[] { (await controller.ListAvailableForAdvance(paymentListModel)).Payments.First() }.Select(q => q.Id) }; var adv = await controller.RequestForAdvance(firstPaymentForAdvance); Assert.Equal(150, adv.GrossAmount); var percentTax = 0.038m; var instalment = decimal.Divide(150, 5); Assert.Equal(150m - 0.9m - (1m * percentTax) * instalment - (2m * percentTax) * instalment - (3m * percentTax) * instalment - (4m * percentTax) * instalment - (5m * percentTax) * instalment, adv.NetAmount); }
public PaymentResultModel DoPayment(PaymentModel paymentModel) { var result = new PaymentResultModel(); try { var createDate = DateTime.UtcNow; var billingInfo = new BillingInfo() { FirstName = paymentModel.FirstName, Email = paymentModel.Email, CreatedOn = createDate, Country = paymentModel.Country, Active = false, Address1 = paymentModel.Address1, Address2 = paymentModel.Address2, City = paymentModel.City, LastName = paymentModel.LastName, Phone = paymentModel.Phone, PostalCode = paymentModel.PostalCode, State = paymentModel.State, Title = paymentModel.Title, Payment = new List <Payment> { } }; var payment = new Payment { Active = false, TransactionId = string.Empty, AuthCode = string.Empty, AmountPaid = decimal.Parse(paymentModel.PaymentAmount), CardHolderName = paymentModel.CardHolderName, CardF4L4 = paymentModel.CardNumber.Substring(0, 4) + paymentModel.CardNumber.Substring(paymentModel.CardNumber.Length - 4, 4), CurrencyId = (int)Currency.CAD, PaymentDate = createDate, PaymentType = (int)PaymentType.Purchase }; billingInfo.Payment.Add(payment); var data = _billingRepository.Add(billingInfo); var request = new HelcimBasicRequestModel() { OrderNumber = "Dora-" + DateTime.Now.ToString("yyyyMMddhhmmss"), Amount = decimal.Parse(paymentModel.PaymentAmount), CreditCard = new HelcimCreditCardRequestModel() { CardHolderName = paymentModel.CardHolderName, CardNumber = paymentModel.CardNumber, CardExpiry = paymentModel.CardExpiry, CardCVV = paymentModel.CardCVV, CardHolderAddress = paymentModel.Address1, CardHolderPostalCode = paymentModel.PostalCode } }; result = (PaymentResultModel)_helcimPaymentService.ProcessPayment(request); if (result.Success && result.Approved) { billingInfo.Active = true; payment.Active = true; payment.TransactionId = result.TransactionId; payment.AuthCode = result.AuthCode; _billingRepository.Update(billingInfo); result.PaymentId = payment.Id; } } catch (Exception ex) { result.Success = false; result.Message = ex.Message; } return(result); }
public virtual ActionResult PaymentInfo() { this.FlashWarning("about to test the Braintree sandbox"); var payment = new PaymentModel { Number = "4111111111111111", ExpirationDate = "05/2012" } ; return View(payment); }
[ProducesResponseType(typeof(PaymentResponseModel), 200)] // OK public async Task <IActionResult> CreatePayment(PaymentModel paymentModel) { var response = await _paymentService.DoPaymentAsync(_mapper.Map <Payment>(paymentModel)); return(Ok(_mapper.Map <PaymentResponseModel>(response))); }
/// <summary> /// To get current Next Number from seleted bank and payment method /// </summary> /// <param name="C_BankAccount_ID">Bank Account</param> /// <param name="VA009_PaymentMethod_ID">Payment Method</param> /// <returns>Check Number</returns> public ActionResult getCheckNo(int C_BankAccount_ID, int VA009_PaymentMethod_ID) { PaymentModel _payMdl = new PaymentModel(); return(Json(JsonConvert.SerializeObject(_payMdl.getCheckNo(C_BankAccount_ID, VA009_PaymentMethod_ID)), JsonRequestBehavior.AllowGet)); }
// reached by the paylink in the confirmation email // which is produced in EnrollAndConfirm public ActionResult PayAmtDue(string q) { if (!q.HasValue()) { return(Content("unknown")); } var id = Util.Decrypt(q).ToInt2(); var qq = from t in DbUtil.Db.Transactions where t.OriginalId == id || t.Id == id orderby t.Id descending select t; var ti = qq.FirstOrDefault(); var org = DbUtil.Db.LoadOrganizationById(ti.OrgId); var amtdue = PaymentForm.AmountDueTrans(DbUtil.Db, ti); if (amtdue == 0) { return(Content("no outstanding transaction")); } #if DEBUG ti.Testing = true; if (!ti.Address.HasValue()) { ti.Address = "235 Riveredge"; ti.City = "Cordova"; ti.Zip = "38018"; ti.State = "TN"; } #endif var pf = PaymentForm.CreatePaymentFormForBalanceDue(ti, amtdue); SetHeaders(pf.OrgId ?? 0); if (OnlineRegModel.GetTransactionGateway() != "serviceu") { return(View("Payment/Process", pf)); } ViewBag.TranId = ti.Id; var pm = new PaymentModel { NameOnAccount = pf.FullName(), Address = pf.Address, Amount = pf.Amtdue, City = pf.City, Email = pf.Email, Phone = pf.Phone.FmtFone(), State = pf.State, PostalCode = pf.Zip, testing = pf.testing, PostbackURL = DbUtil.Db.ServerLink("/OnlineReg/ConfirmServiceU/" + id), Misc2 = pf.Description, Misc1 = pf.FullName(), _URL = pf.URL, _timeout = new PaymentForm().TimeOut, }; return(View("PayAmtDue/ServiceU", pm)); }
public PaymentModel AckPaymentandProcess(AVOAIALifeEntities Context, PaymentModel objPaymentModel, tblPolicy objtblpolicy) { SMSIntegration objSMSIntegration = new SMSIntegration(); SMSDetails objSMSDetails = new SMSDetails(); Common.CommonBusiness objCommonBusiness = new Common.CommonBusiness(); #region UW deviations UWRuleLogic objLogic = new UWRuleLogic(); PolicyLogic objPolicyLogic = new PolicyLogic(); objPaymentModel.Message = string.Empty; //bool dataUpdated = false; //var ilData = Context.tblLogILUpdates.Where(a => a.ProposalNo == objPaymentModel.ProposalNo).FirstOrDefault(); //if (ilData != null) //{ // if (ilData.ServiceStatus == "SUCC" && ilData.ServiceName == "ModifyProposal") // dataUpdated = true; //} //if (dataUpdated) //{ // //S003 // var CustomerDetails=objtblpolicy.tblPolicyRelationships.FirstOrDefault().tblPolicyClient; // //var Title = Context.tblMasCommonTypes.Where(a => a.Code == CustomerDetails.Title).Select(a => a.ShortDesc).FirstOrDefault(); // //objSMSDetails.Salutation = objCommonBusiness.ConverttoTitlecase(Title); // string Sal = CustomerDetails.Title; // var Salutation = Context.tblMasCommonTypes.Where(a => a.Code == Sal && a.MasterType == "Salutation").Select(a => a.ShortDesc).FirstOrDefault(); // var Salu = Context.tblMasCommonTypes.Where(a => a.Description == Sal && a.MasterType == "Salutation").Select(a => a.ShortDesc).FirstOrDefault(); // if (!String.IsNullOrEmpty(Salutation)) // { // objSMSDetails.Salutation = Salutation; // } // else if (!String.IsNullOrEmpty(Salu)) // { // objSMSDetails.Salutation = Salu; // } // else // { // objSMSDetails.Salutation = Sal; // } // var Name = ""; // if (CustomerDetails.FullName == "CORP") // { // Name = CustomerDetails.CorporateName; // } // else // { // Name = CustomerDetails.LastName; // } // objSMSDetails.Name = objCommonBusiness.ConverttoTitlecase(Name); // objSMSDetails.SMSTemplate = "S003"; // objSMSDetails.ProposalNumber = objPaymentModel.ProposalNo; // objSMSDetails.MobileNumber = CustomerDetails.MobileNo; // objSMSDetails.SMSEnvironment = Convert.ToString(ConfigurationManager.AppSettings["SMSEnvironment"]); // if (!String.IsNullOrEmpty(objSMSDetails.MobileNumber)) // { // objSMSIntegration.SMSNotification(objSMSDetails); // } // // objPaymentModel = (PaymentModel)IL.RecieptEnquiry(objPaymentModel); //} //if ((objPaymentModel.PayingAmount) >= (Convert.ToDecimal(objPaymentModel.PayableAmount) - 100) || System.Web.Configuration.WebConfigurationManager.AppSettings["PublishEnvironment"] == "SIT") //{ AIA.Life.Models.Policy.Policy objPolicy = new AIA.Life.Models.Policy.Policy(); objPolicy.ProposalFetch = true; objPolicy.ProposalNo = objPaymentModel.ProposalNo; objPolicy.QuoteNo = objtblpolicy.QuoteNo; objPolicy = objPolicyLogic.FetchProposalInfo(objPolicy); // //S012 //if (objPaymentModel.SelectedPayment == "othertypes") //{ // var createdBy = Context.tblPolicies.Where(a => a.ProposalNo == objPolicy.ProposalNo).Select(a => a.Createdby).FirstOrDefault(); // objSMSDetails.MobileNumber = Context.tblUserDetails.Where(a => a.UserID.ToString() == createdBy).Select(a => a.ContactNo).FirstOrDefault(); // //objSMSDetails.MobileNumber = Context.tblMasIMOUsers.Where(a => a.UserID == objPolicy.AgentCode).Select(a => a.MobileNo).FirstOrDefault(); // objSMSDetails.SMSTemplate = "S012"; // objSMSDetails.PolicyNo= objPaymentModel.ProposalNo; // objSMSDetails.Premium = String.Format(CultureInfo.GetCultureInfo(1033), "{0:n0}", objPolicy.AnnualPremium); //Convert.ToString(objPolicy.AnnualPremium); // objSMSDetails.SMSEnvironment = Convert.ToString(ConfigurationManager.AppSettings["SMSEnvironment"]); // objSMSIntegration.SMSNotification(objSMSDetails); //} string Message = string.Empty; Message = objLogic.ValidateDeviation(objPolicy); //tblPayment tblPayment = objtblpolicy.tblPolicyPaymentMaps.OrderByDescending(a => a.PolicyPaymentMapID).FirstOrDefault().tblPayment; //tblPayment.ChequeSubmission = true; //tblPayment.ReceiptNo = "ACK"; //string leadNo = Context.tblLifeQQs.Where(a => a.QuoteNo == objtblpolicy.QuoteNo).Select(a => a.tblContact).FirstOrDefault().LeadNo; // if (dataUpdated) // objPaymentModel = (PaymentModel)IL.ProposalPreIssueValidation(objPaymentModel); if (!string.IsNullOrEmpty(Message.Trim()) || objtblpolicy.PolicyStageStatusID == 2376)// Or Counter offer Case { objPaymentModel.Message = "Success"; if (objtblpolicy != null) { Message = "Your proposal has been forwarded to the Underwriter for further processing."; objtblpolicy.PolicyRemarks = Message; objtblpolicy.PolicyStageStatusID = 193; // UW objtblpolicy.IsAllocated = false; // Pending for Allocation objtblpolicy.ProposalSubmitDate = DateTime.Now; //if (!string.IsNullOrEmpty(leadNo)) //{ // // SamsClient samsClient = new SamsClient(); // // samsClient.UpdateLeadStatus(Context, Convert.ToInt32(leadNo), 9); //} //SMS S005 var createdBy = Context.tblPolicies.Where(a => a.ProposalNo == objPolicy.ProposalNo).Select(a => a.Createdby).FirstOrDefault(); objSMSDetails.MobileNumber = Context.tblUserDetails.Where(a => a.UserID.ToString() == createdBy).Select(a => a.ContactNo).FirstOrDefault(); //objSMSDetails.WPMobileNumber= Context.tblMasIMOUsers.Where(a => a.UserID == objPolicy.UserName).Select(a => a.MobileNo).FirstOrDefault(); objSMSDetails.SMSTemplate = "S005"; objSMSDetails.PolicyNo = objPaymentModel.ProposalNo; objSMSDetails.SMSEnvironment = Convert.ToString(ConfigurationManager.AppSettings["SMSEnvironment"]); objSMSIntegration.SMSNotification(objSMSDetails); } objPaymentModel.UWMessage = "" + Message; Context.SaveChanges(); } else { objtblpolicy.PolicyNo = objPaymentModel.ProposalNo = objPolicy.ProposalNo; objtblpolicy.PolicyStageStatusID = 192;// Issued DateTime today = DateTime.Now; int[] exceptionDays = new int[3] { 29, 30, 31 }; if (exceptionDays.Contains(today.Day)) { today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 28); } objtblpolicy.PolicyIssueDate = today; objtblpolicy.PolicyStartDate = today; objtblpolicy.PolicyEndDate = today.AddYears(Convert.ToInt32(objtblpolicy.PolicyTerm)); Context.SaveChanges(); objPaymentModel.Message = "Success"; } #endregion //if (!string.IsNullOrEmpty(objPaymentModel.ProposalNo) && dataUpdated) //{ // //objPaymentModel = (PaymentModel)IL.ProposalPreIssueValidation(objPaymentModel); // if (string.IsNullOrEmpty(objPaymentModel.Error.ErrorMessage) && (objPaymentModel.PreIssueValidations.Count <= 1)) // { // if (string.IsNullOrEmpty(objPaymentModel.Error.ErrorMessage)) // { // Thread.Sleep(5000); // // objPaymentModel = (PaymentModel)IL.ProposalUWApproval(objPaymentModel); // if (string.IsNullOrEmpty(objPaymentModel.Error.ErrorMessage)) // { // //objPaymentModel = (PaymentModel)IL.QualityControl(objPaymentModel); // if (string.IsNullOrEmpty(objPaymentModel.Error.ErrorMessage)) // { // //objPaymentModel = (PaymentModel)IL.ProposalIssuance(objPaymentModel); // if (string.IsNullOrEmpty(objPaymentModel.Error.ErrorMessage)) // { // objtblpolicy.PolicyNo = objPaymentModel.ProposalNo = objPolicy.ProposalNo; // objtblpolicy.PolicyStageStatusID = 192;// Issued // DateTime today = DateTime.Now; // int[] exceptionDays = new int[3] { 29, 30, 31 }; // if (exceptionDays.Contains(today.Day)) // today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 28); // objtblpolicy.PolicyIssueDate = today; // objtblpolicy.PolicyStartDate = today; // objtblpolicy.PolicyEndDate = today.AddYears(Convert.ToInt32(objtblpolicy.PolicyTerm)); // objPaymentModel.Message = "Success"; // } // } // } // } // } // else // { // if (dataUpdated) // { // if (!string.IsNullOrEmpty(leadNo)) // { // // SamsClient samsClient = new SamsClient(); // //samsClient.UpdateLeadStatus(Context, Convert.ToInt32(leadNo), 9); // } // objtblpolicy.PolicyStageStatusID = 193;// UW // objtblpolicy.IsAllocated = false; // objtblpolicy.ProposalSubmitDate = DateTime.Now; // objPaymentModel.UWMessage = "Your proposal has been forwarded to the underwriter for further processing."; // } // else // { // objPaymentModel.UWMessage = "Payment is Successful. Your proposal is under processing, you will be notified soon."; // } // } // Context.SaveChanges(); //} //} //else //{ // if(objPaymentModel.PayingAmount==0) // objPaymentModel.UWMessage = "Payment is Successful. Your proposal is under processing, you will be notified soon."; // else // objPaymentModel.UWMessage = "Your payment is successful. Payment reference number is " + objPaymentModel.TransactionNo; //} return(objPaymentModel); }
/// <summary> /// This method is called after the order is placed. This method should be used by the gateways that want to /// redirect customer to their site. /// </summary> /// <param name="orderForm">The order form.</param> /// <param name="model">The model.</param> /// <returns><c>true</c></returns> public bool PostProcess(OrderForm orderForm, PaymentModel model) { return true; }
/// <summary> /// Gets the payments. /// </summary> /// <param name="shippingMethod">The shipping method.</param> /// <returns>List{PaymentModel}.</returns> private List<PaymentModel> GetPayments(string shippingMethod = null) { var paymentsString = _storeClient.GetCurrentStore().PaymentGateways.Select(c => c.PaymentGateway).ToArray(); var methods = _paymentClient.GetAllPaymentsMethods(paymentsString). Where(x => shippingMethod == null || x.PaymentMethodShippingMethods.Any(y => y.ShippingMethodId == shippingMethod)); var methodModels = new List<PaymentModel>(); var cardTypes = new List<ListModel> { new ListModel("--Please Select--".Localize(), ""), new ListModel("American Express", "AE"), new ListModel("Visa", "VI"), new ListModel("Master Card", "MC"), new ListModel("Discover", "DI") }; var months = new List<ListModel> { new ListModel("Month".Localize(), ""), new ListModel("01 - January".Localize(), "1"), new ListModel("02 - February".Localize(), "2"), new ListModel("03 - March".Localize(), "3"), new ListModel("04 - April".Localize(), "4"), new ListModel("05 - May".Localize(), "5"), new ListModel("06 - June".Localize(), "6"), new ListModel("07 - July".Localize(), "7"), new ListModel("08 - August".Localize(), "8"), new ListModel("09 - September".Localize(), "9"), new ListModel("10 - October".Localize(), "10"), new ListModel("11 - November".Localize(), "11"), new ListModel("12 - December".Localize(), "12") }; var years = new List<ListModel> { new ListModel("Year".Localize(), "") }; for (var index = DateTime.Now.Year; index <= DateTime.Now.Year + 10; index++) { years.Add(new ListModel(index.ToString(CultureInfo.InvariantCulture), index.ToString(CultureInfo.InvariantCulture))); } foreach (var method in methods.OrderBy(m => m.Priority).ThenBy(m => m.Name)) { if (method.Name.Equals("Credit", StringComparison.OrdinalIgnoreCase)) { if (!UserHelper.CustomerSession.IsRegistered) continue; } var paymentMethodLanguage = method.PaymentMethodLanguages.FirstOrDefault( pml => pml.LanguageCode == UserHelper.CustomerSession.Language); var model = new PaymentModel { Id = method.PaymentMethodId, Name = method.Name, DisplayName = paymentMethodLanguage != null ? paymentMethodLanguage.DisplayName : method.Description, Months = months.ToArray(), Years = years.ToArray(), CardTypes = cardTypes.ToArray() }; if (Ch.OrderForm.Payments != null) { var payment = Ch.OrderForm.Payments.FirstOrDefault(p => p.PaymentMethodId == method.PaymentMethodId); if (payment != null) { model.IsCurrent = true; if (payment is CreditCardPayment) { var crPayment = payment as CreditCardPayment; model.CardNumber = crPayment.CreditCardNumber; model.CardType = crPayment.CreditCardType; model.CustomerName = crPayment.CreditCardCustomerName; model.ExpirationMonth = crPayment.CreditCardExpirationMonth; model.ExpirationYear = crPayment.CreditCardExpirationYear; } } } methodModels.Add(model); } return methodModels; }
public abstract void PreparePaymentModel(PaymentModel model, InvoiceResponse invoiceResponse);
public async Task CreditCardPaymentTest() { var customer = new CustomerModel() { Name = "Olavo Neto", Email = "*****@*****.**", }; var registeredCustomer = await DbContext.Customers.FirstOrDefaultAsync(); var waiToken = registeredCustomer.MapToWhoAmI().EncryptToken(); customer.Id = registeredCustomer.Id; var paymentModel = new PaymentModel() { Customer = customer, Amount = 100, InstalmentsCount = 5, CardNumber = "5555111122223333", CardExpirationDate = "08/2021", CardName = "OLAVO DE SOUZA ROCHA NETO", CardSecurityNumber = "558", AuthToken = waiToken }; var before = DateTime.Now; PaymentController controller = new PaymentController(DbContext, FakeAcquirer, FakeAccount, FakeLogger); var cResponse = await controller.ProcessPayment(paymentModel); Assert.IsNotType <PaymentErrorJson>(cResponse); Assert.NotNull(cResponse); Assert.Equal(100M, cResponse.Amount); Assert.Equal(5, cResponse.InstalmentsCount); Assert.Null(cResponse.CanceledAt); Assert.Equal(OperatorResponse.Acepted, cResponse.OperatorResponse); Assert.Null(cResponse.TransferDate); //pelo contexto //Customers Assert.Equal(1, await DbContext.Customers.CountAsync()); //payment Assert.Equal(1, await DbContext.Payments.CountAsync()); Assert.Equal(5, (await DbContext.Payments.Include(p => p.Instalments).FirstAsync()).Instalments.Count); Assert.Equal(3333, (await DbContext.Payments.FirstAsync()).CardLastDigits); Assert.Equal(20m, (await DbContext.Payments.Include(p => p.Instalments).FirstAsync()).Instalments[0].Ammount); Assert.Equal("Olavo Neto", (await DbContext.Payments.Include(p => p.Customer).FirstAsync()).Customer.Name); //instalments Assert.Equal(5, await DbContext.Instalments.CountAsync()); Assert.Equal(20m, (await DbContext.Instalments.FirstAsync()).Ammount); Assert.Equal(0.9m, (await DbContext.Instalments.FirstAsync()).FixedTax); Assert.Equal(0.0m, (await DbContext.Instalments.FirstAsync()).AdvanceTax); Assert.Equal(DateTime.Today.AddDays(30), (await DbContext.Instalments.FirstAsync()).TargetDate); Assert.Equal(DateTime.Today.AddDays(90), (await DbContext.Instalments.ToListAsync())[2].TargetDate); Assert.Equal(DateTime.Today.AddDays(120), (await DbContext.Instalments.ToListAsync())[3].TargetDate); Assert.Equal(DateTime.Today.AddDays(150), (await DbContext.Instalments.LastAsync()).TargetDate); Assert.Equal(0.0m, (await DbContext.Instalments.LastAsync()).FixedTax); Assert.Equal(0.0m, (await DbContext.Instalments.LastAsync()).AdvanceTax); Assert.Equal(19.1m, (await DbContext.Instalments.FirstAsync()).NetAmmount); Assert.Equal(customer.Id, (await DbContext.Instalments.Include(p => p.Customer).ToListAsync())[2].CustomerId); Assert.Equal(100m, (await DbContext.Instalments.Include(p => p.Customer).ToListAsync())[2].AllInstalments); Assert.Equal(4, (await DbContext.Instalments.Include(p => p.Customer).ToListAsync())[3].Number); Assert.NotNull((await DbContext.Instalments.LastAsync()).CreatedAt); Assert.Equal(100, (await DbContext.Instalments.LastAsync()).AllInstalments); Assert.Equal(5, (await DbContext.Instalments.LastAsync()).TotalOf); }
public String GenerateHeader() { PaymentModel payment = new PaymentModel(); dynamic payments = payment.where (payment, "invoice_id='" + this.invoice.id + "'"); var sb = new StringBuilder(); sb.AppendLine("Tangail Enterprise"); sb.AppendLine(DepartmentSettings.branchName.PadLeft(0)); sb.AppendLine(DepartmentSettings.address.PadLeft(20)); sb.AppendLine("-----------------------------------------------------------------"); sb.AppendLine("VAT CHALAN (" + DepartmentSettings.vatChalan + ")"); sb.AppendLine("VAT Reg: " + DepartmentSettings.vatRegstration); CustomerModel customer = new CustomerModel(); if (this.invoice.customer_id != null) { dynamic customers = customer.find(customer, this.invoice.customer_id); sb.AppendLine(customers.name); } else { sb.AppendLine(" "); } sb.AppendLine("------------------------------------------------------------------"); sb.Append("Item/Decription".PadRight(FIRST_COL_PAD)); sb.Append("|".PadLeft(21)); sb.AppendLine("Amount".PadLeft(15)); sb.AppendLine("------------------------------------------------------------------"); InvoiceItemModel invoice_item_obj = new InvoiceItemModel(); dynamic items = invoice_item_obj.where (invoice_item_obj, "invoice_id = '" + this.invoice.id + "'"); int i = 0; float total = 0; double vat = 0; foreach (dynamic item in items) { Console.WriteLine("jhfv"); sb.Append("" + (i++) + ") PCODE1 [" + item.quantity + " @ " + Math.Round(item.price, 2) + "]".PadRight(FIRST_COL_PAD)); sb.Append("|".PadRight(SECOND_COL_PAD)); sb.AppendLine(string.Format("{0:0.00}", item.total).PadLeft(THIRD_COL_PAD)); sb.AppendLine(item.name.PadRight(FIRST_COL_PAD)); sb.AppendLine("------------------------------------------------------------------"); total += item.total; double invoiceVat = item.vat; vat += invoiceVat; } sb.AppendLine("Subtotal Without VAT: " + Math.Round(total, 2)); sb.AppendLine("VAT(Applicable Item Only): " + Math.Round(vat, 2)); sb.AppendLine(" -----------------------"); double paid = 0.0; double change = 0.0; if (this.received == 0.0) { paid = invoice.net_total; change = 0.0; } else { paid = this.received; change = this.received - invoice.net_total; } sb.AppendLine(" Net total:" + invoice.net_total); sb.AppendLine(" Discount:" + invoice.discount); sb.AppendLine(" Paid :" + paid); sb.AppendLine(" Change :" + change); String paymentType = ""; if (payments.Count > 0) { paymentType = payments[0].payment_method; } sb.AppendLine("Payment Mode:" + paymentType); sb.AppendLine("--------------------------------------------------------------"); sb.AppendLine("CASH " + Math.Round((total + vat), 2)); sb.AppendLine("--------------------------------------------------------------"); sb.AppendLine("Current Bonus Point :" + this.invoice.point); sb.AppendLine("Last Bonus Point :" + this.invoice.lastPoint); sb.AppendLine("---------------------------------------------------------------"); sb.AppendLine("Sold item cannot be refunded but be exchanged"); sb.AppendLine("within 72 hours with revevant recepit."); sb.AppendLine("COS&ORN is not exchangable. Inquery:01722647240"); sb.AppendLine("Your right choice for shopping"); sb.AppendLine("**System by Syftet Limited, Dhaka**"); Console.WriteLine(sb.ToString()); return(sb.ToString()); }
public async Task GetAdvancePaymentRequestDetailsTest() { #region ContextSetup var dbContext = DbContext; var registeredCustomer = await dbContext.Customers.FirstOrDefaultAsync(); var waiToken = registeredCustomer.MapToWhoAmI().EncryptToken(); var customerModel = new CustomerModel() { Id = registeredCustomer.Id, Name = registeredCustomer.Name, Email = registeredCustomer.Email }; var paymentModel = new PaymentModel() { Customer = customerModel, Amount = 100, InstalmentsCount = 5, CardNumber = "5555111122223333", CardExpirationDate = "08/2021", CardName = "OLAVO DE SOUZA ROCHA NETO", CardSecurityNumber = "558", AuthToken = waiToken }; var before = DateTime.Now; var paymentModel2 = new PaymentModel() { Customer = customerModel, Amount = 150, InstalmentsCount = 5, CardNumber = "5555111122223333", CardExpirationDate = "08/2021", CardName = "OLAVO DE SOUZA ROCHA NETO", CardSecurityNumber = "558", AuthToken = waiToken }; PaymentController controller = new PaymentController(dbContext, FakeAcquirer, FakeAccount, FakeLogger); await controller.ProcessPayment(paymentModel); await controller.ProcessPayment(paymentModel2); var paymentListModel = new PaymentListModel() { AuthToken = waiToken }; var firstPaymentForAdvance = new AdvanceListModel() { AuthToken = waiToken, Payments = new[] { (await controller.ListAvailableForAdvance(paymentListModel)).Payments.First() }.Select(q => q.Id) }; var adv = await controller.RequestForAdvance(firstPaymentForAdvance); #endregion var adModel = new AdvanceDetailsModel() { AuthToken = waiToken, Id = adv.Id }; var radv = await controller.GetAdvanceDetails(adModel); Assert.Equal(radv.Id, adModel.Id); Assert.Single(radv.Payments); var percentTax = 0.038m; var instalment = decimal.Divide(150, 5); Assert.Equal(150m - 0.9m - (1m * percentTax) * instalment - (2m * percentTax) * instalment - (3m * percentTax) * instalment - (4m * percentTax) * instalment - (5m * percentTax) * instalment, adv.NetAmount); }
/// <summary> /// Page that shows confirmation of payment and sends payment Id for payment to be made /// </summary> /// <param name="id">Id of payment</param> /// <returns>View of page</returns> public IActionResult CompletePayment(int id) { PaymentModel payment = _dataAccessor.GetPayments().Where(x => x.Id == id).First(); return(View(payment)); }
private PaymentModel MakeElements(Payment payment, string method, ICollection <Status> statuses, ICollection <Category> categories) { var result = new PaymentModel(); result.Date = "<div class='form-group form-floating created'>" + "<input name='Date' placeholder='Date' class='form-control' type='date' id='datepickerDate" + method + "PaymentFinance' value='" + payment.Date.ToString("dd.MM.yyyy") + "' />" + "<label for='Date' class='control-label'>Date</label>" + "</div>"; result.Description = "<div class='form-group form-floating created'>" + "<input name='Description' placeholder='Description' class='form-control' id='inputDescription" + method + "PaymentFinance' value='" + payment.Description + "' />" + "<label for='Description'>Description</label>" + "</div>"; result.Amount = "<div class='form-group form-floating created'>" + "<input name='Amount' placeholder='Amount' class='form-control' id='inputAmount" + method + "PaymentFinance' value='" + payment.Amount + "' />" + "<label for='Amount' class='control-label'>Total Amount</label>" + "</div>"; result.Amount_Gross = "<div class='form-group form-floating created'>" + "<input name='Amount_Gross' placeholder='Amount_Gross' class='form-control' id='inputAmountGross" + method + "PaymentFinance' value='" + payment.GrossAmount + "' />" + "<label for='Amount_Gross' class='control-label'>Amount Gross</label>" + "</div>"; result.Amount_Net = "<div class='form-group form-floating created'>" + "<input name='Amount_Net' placeholder='Amount_Net' class='form-control' id='inputAmountNet" + method + "PaymentFinance' value='" + payment.NetAmount + "' />" + "<label for='Amount_Net' class='control-label'>Amount Net</label>" + "</div>"; result.Tax = "<div class='row g-3 form-group created'>" + "<div class='col form-floating created'>" + "<input name='Tax' placeholder='Tax' class='form-control' id='inputTax" + method + "PaymentFinance' value='" + payment.TaxRate + "' />" + "<label for='Tax' class='control-label'>Tax</label>" + "</div>" + "<div class='col form-floating created'>" + "<input name='Amount_Tax' placeholder='Amount_Tax' class='form-control' id='inputAmountTax" + method + "PaymentFinance' value='" + payment.TaxAmount + "' />" + "<label for='Amount_Tax' class='control-label'>Amount Tax</label>" + "</div>" + "</div>"; if (payment.ExtraCostAmount != null) { var countExtraCosts = payment.ExtraCostAmount.Count(); for (int i = 0; i < countExtraCosts; i++) { result.ExtraCosts += "<br class='created' />"; result.ExtraCosts += "<div class='row g-3 form-group created'>" + "<div class='col form-floating'>" + "<input name='Description_ExtraCosts' placeholder='Description_ExtraCosts' class='form-control' id='inputDescriptionExtraCosts" + method + "PaymentFinance' value='" + payment.ExtraCostDescription[i] + "' />" + "<label for='Description_ExtraCosts' class='control-label'>Description</label>" + "</div>" + "<div class='col form-floating'>" + "<input name='Amount_ExtraCosts' placeholder='Amount_ExtraCosts' class='form-control' id='inputAmountExtraCosts" + method + "PaymentFinance' value='" + payment.ExtraCostAmount[i] + "' />" + "<label for='Amount_ExtraCosts' class='control-label'>Amount</label>" + "</div>" + "</div>"; } } result.AddExtraCost = "<a href='#' class='link-dark created' id='linkAddExtraCost" + method + "PaymentFinance'>Add Extra Cost</a>"; if (payment.DetailedTaxAmount != null) { var countTaxList = payment.DetailedTaxAmount.Count(); for (int i = 0; i < countTaxList; i++) { if (i > 0) { result.TaxList += "<br class='created' />"; } result.TaxList += "<div class='row g-3 form-group created advancedTax'>" + "<div class='col-6 form-floating'>" + "<input name='Description_TaxList' placeholder='Description_TaxList' class='form-control' id='inputDescriptionTaxList" + method + "PaymentFinance' value='" + payment.DetailedTaxDescription[i] + "' />" + "<label for='Description_TaxList' class='control-label'>Description</label>" + "</div>" + "<div class='col form-floating'>" + "<input name='TaxList' placeholder='TaxList' class='form-control' id='inputTaxList" + method + "PaymentFinance' value='" + payment.DetailedTaxRate[i] + "' />" + "<label for='TaxList' class='control-label'>Tax %</label>" + "</div>" + "<div class='col form-floating'>" + "<input name='Amount_TaxList' placeholder='Amount_TaxList' class='form-control' id='inputAmountTaxList" + method + "PaymentFinance' value='" + payment.DetailedTaxAmount[i] + "' />" + "<label for='Amount_TaxList' class='control-label'>Amount</label>" + "</div>" + "</div>"; } result.AdvancedTaxList = "<a href='#' class='link-dark created' id='linkAdvancedTaxList" + method + "PaymentFinance' value='1'>Advanced</a>"; result.AddTax = "<a href='#' class='link-dark created' id='linkAddTax" + method + "PaymentFinance'>Add Tax</a>"; } else { result.TaxList += "<div class='row g-3 form-group created advancedTax'>" + "<div class='col-6 form-floating'>" + "<input name='Description_TaxList' placeholder='Description_TaxList' class='form-control' id='inputDescriptionTaxList" + method + "PaymentFinance' />" + "<label for='Description_TaxList' class='control-label'>Description</label>" + "</div>" + "<div class='col form-floating'>" + "<input name='TaxList' placeholder='TaxList' class='form-control' id='inputTaxList" + method + "PaymentFinance' />" + "<label for='TaxList' class='control-label'>Tax %</label>" + "</div>" + "<div class='col form-floating'>" + "<input name='Amount_TaxList' placeholder='Amount_TaxList' class='form-control' id='inputAmountTaxList" + method + "PaymentFinance' />" + "<label for='Amount_TaxList' class='control-label'>Amount</label>" + "</div>" + "</div>"; result.AdvancedTaxList = "<a href='#' class='link-dark created' id='linkAdvancedTaxList" + method + "PaymentFinance' value='1'>Advanced</a>"; result.AddTax = "<a href='#' class='link-dark created' id='linkAddTax" + method + "PaymentFinance'>Add Tax</a>"; } result.Invoice = "<div class='form-group created'>" + "<label class='control-label' for='files'>Upload Invoice</label>" + "<input class='form-control' name='files' type='file' id='uploadFiles" + method + "PaymentFinance' />" + "</div>"; if (categories != null) { var categoryElement = "<div class='form-group form-floating created'>" + "<select name='fk_CategoryId' class ='form-control' id='dropdownCategory" + method + "PaymentFinance'>"; if (payment.fk_CategoryId == null) { categoryElement += "<option value='- 1' disabled selected>Select a Category</option>'"; } foreach (var category in categories) { categoryElement += "<option value='" + category.Id + "'"; if (payment.fk_CategoryId == category.Id) { categoryElement += "selected"; } categoryElement += ">" + category.Name + "</option>"; } categoryElement += "</select>" + "<label for='fk_CategoryId' class='control-label'>Category</label>" + "</div>"; result.Category = categoryElement; } var statusElement = "<div class='form-group form-floating created'>" + "<select name='fk_StatusId' class ='form-control' id='dropdownStatus" + method + "PaymentFinance'>"; if (payment.fk_StatusId == null) { statusElement += "<option value='-1' disabled selected>Select a Status</option>"; } foreach (var status in statuses) { statusElement += "<option value='" + status.Id + "'"; if (payment.fk_StatusId == status.Id) { statusElement += "selected"; } statusElement += ">" + status.Name + "</option>"; } statusElement += "</select>" + "<label for='fk_StatusId' class='control-label'>Status</label>" + "</div>"; result.Status = statusElement; result.AdvancedAmount = "<a href='#' class='link-dark created' id='linkAdvancedAmount" + method + "PaymentFinance' value='1' >Advanced</a>"; return(result); }
public IRestCallbackClient PostVerifyPayment(PaymentModel model) { return(Request(RestConstants.PostPaymentVerify, Method.POST, JsonConvert.SerializeObject(model), RestConstants.MediaTypeJson)); }
public Order Submit(string orderType, PaymentModel model, decimal tax, bool isProduction, string address = "", bool deferSave = false) { return(new Submit(_context, orderType, model, tax, isProduction, address, deferSave).ExecuteAndReturnResults()); }
public void SavePayment(PaymentModel payment) { _xmlManager.AddObject <PaymentModel>(payment, _applicationSettings.Value.XMLUrl, ROOTNAME, ELEMENTNAME); }
public async Task <IActionResult> ProcessPayment([FromBody] PaymentModel paymentModel) { var paymentResponse = await _paymentService.ProcessPaymentAsync(paymentModel); return(StatusCode(paymentResponse.StatusCode, paymentResponse)); }
public ActionResult CreateTDC(PaymentViewModel model) { //Setear variables del conector PaymentApplication paymentApp = _paymentService.GetPaymentApplicationByKey(AppKey); paymentProviderService.MerchantId = paymentApp.MerchantId; paymentProviderService.PublicKey = paymentApp.PublicKey; paymentProviderService.PrivateKey = paymentApp.PrivateKey; paymentProviderService.DashboardURL = paymentApp.DashboardURL; PaymentModel payment = new PaymentModel() { ClientId = paymentApp.ClientId, OrderId = model.OrderId, Amount = model.Amount, TokenId = model.TokenId, DeviceSessionId = model.DeviceSessionId, Description = String.Format("Pago de orden {0}", model.OrderId), RedirectUrl = SecureVerificationURL, //Use3DSecure = true }; //Primero en BD Payment paymentBO = new Payment(); paymentBO.CreationDate = DateUtil.GetDateTimeNow(); paymentBO.User = new User() { Id = Authenticator.AuthenticatedUser.Id }; paymentBO.Amount = model.Amount; paymentBO.OrderId = model.OrderId; paymentBO.ConfirmationEmail = model.ConfirmationEmail; paymentBO.Status = PaymentStatus.IN_PROGRESS; paymentBO.Method = PaymentMethod.CARD; paymentBO.TransactionType = PaymentType.CHARGE; paymentBO.ConfirmationDate = null; _paymentService.Create(paymentBO); //Luego cobrar model.PaymentMethod = PaymentMethod.CARD; payment = paymentProviderService.CreateTDCPayment(payment); //Si hubiera reintento, probar Antifraude if (UseSelective3DSecure && !payment.ChargeSuccess & payment.ResultCode == PaymentError.ANTI_FRAUD) { payment.Use3DSecure = true; payment = paymentProviderService.CreateTDCPayment(payment); } model.ChargeSuccess = payment.ChargeSuccess; if (payment.ChargeSuccess) { //Luego actualizar paymentBO.ProviderId = payment.Id; paymentBO.Status = payment.Status; paymentBO.DueDate = payment.DueDate; paymentBO.LogData = payment.ResultData; _paymentService.Update(paymentBO); model.Id = payment.Id; model.Description = payment.Description; model.JsonData = payment.ResultData; model.DueDate = payment.DueDate; model.PaymentCardURL = payment.PaymentCardURL; } else { paymentBO.Status = PaymentStatus.ERROR; paymentBO.LogData = payment.ResultData; _paymentService.Update(paymentBO); model.Description = payment.ResultData; } // Session.Add("Payments.PaymentModel", model); if (payment.PaymentMethod != null && !string.IsNullOrEmpty(payment.PaymentMethod.RedirectUrl)) { return(Redirect(payment.PaymentMethod.RedirectUrl)); } //return View("CreateTDC", model); return(View("CheckoutSuccess", model)); }
public Response<string> SetPaymentType(PaymentModel objReq) { Response<string> response = new Response<string>(); List<string> objResp = new List<string>(); try { objDbMethodV2 = new wizz.Dal.DbMethodsV2(); if (objDbMethodV2.SetPaymentType(objReq)) response.Create(true, "done", Messages.AppVersion, objResp); else { response.Create(false, "you are not allowed", Messages.AppVersion, objResp); } } catch (Exception ex) { object session = new JavaScriptSerializer().Serialize(objReq); LogManager.Error("Error occured while Processing Webservice request :{0}", ex, session, ex.Message); response.Create(false, Messages.FormatMessage(Messages.ErrorOccure), Messages.AppVersion, objResp); } finally { } return response; }
public ActionResult CreateSPEI(PaymentViewModel model) { //Setear variables del conector PaymentApplication paymentApp = _paymentService.GetPaymentApplicationByKey(AppKey); paymentProviderService.MerchantId = paymentApp.MerchantId; paymentProviderService.PublicKey = paymentApp.PublicKey; paymentProviderService.PrivateKey = paymentApp.PrivateKey; paymentProviderService.DashboardURL = paymentApp.DashboardURL; PaymentModel payment = new PaymentModel() { ClientId = paymentApp.ClientId, OrderId = model.OrderId, Amount = model.Amount, DueDate = DateUtil.GetDateTimeNow().AddDays(TransferExpirationDays), Description = String.Format("Pago de orden {0}", model.OrderId), }; model.PaymentMethod = PaymentMethod.BANK_ACCOUNT; payment = paymentProviderService.CreateBankTransferPayment(payment); model.ChargeSuccess = payment.ChargeSuccess; if (payment.ChargeSuccess) { //Primero guardar en BD Payment paymentBO = new Payment(); paymentBO.CreationDate = DateUtil.GetDateTimeNow(); paymentBO.User = new User() { Id = Authenticator.AuthenticatedUser.Id }; paymentBO.Amount = model.Amount; paymentBO.OrderId = model.OrderId; paymentBO.ConfirmationEmail = model.ConfirmationEmail; paymentBO.ProviderId = payment.Id; paymentBO.Status = payment.Status; paymentBO.DueDate = payment.DueDate; paymentBO.Method = PaymentMethod.BANK_ACCOUNT; paymentBO.TransactionType = PaymentType.CHARGE; paymentBO.ConfirmationDate = null; _paymentService.Create(paymentBO); model.Id = payment.Id; model.Description = payment.Description; model.JsonData = payment.ResultData; model.DueDate = payment.DueDate; model.PaymentCardURL = payment.PaymentCardURL; model.BankName = payment.PaymentMethod.BankName; model.Clabe = payment.PaymentMethod.Clabe; model.Reference = payment.PaymentMethod.Reference; model.Name = payment.PaymentMethod.Name; model.Agreement = payment.PaymentMethod.Agreement; } else { model.Description = payment.ResultData; } //return View("CreateSPEI", model); return(View("CheckoutSuccess", model)); }
static void SimulatePayment(PaymentModel paymentModel, int hours) { decimal amountToPay = PaymentProcessor.CalculatePayment(paymentModel, hours); Console.WriteLine($"You will get paid ${amountToPay} for your {paymentModel.Label}."); }
public int?MakePayment(PaymentModel paymentModel) { return(PaymentMethod[paymentModel.PaymentMethod](paymentModel)); }
public virtual ActionResult PaymentInfo(FormCollection collection) { var payment = new PaymentModel { Number = collection["Card Number"], ExpirationDate = collection["Exp Date"] }; return View(payment); var gateway = new BraintreeGateway { Environment = Braintree.Environment.SANDBOX, MerchantId = ConfigurationManager.AppSettings["BrainTree-MerchantId"], PublicKey = ConfigurationManager.AppSettings["BrainTree-PublicKey"], PrivateKey = ConfigurationManager.AppSettings["BrainTree-PrivateKey"] }; var request = new TransactionRequest { Amount = 0.10M, CreditCard = new TransactionCreditCardRequest { Number = payment.Number, ExpirationDate = payment.ExpirationDate } }; Result<Transaction> result = gateway.Transaction.Sale(request); if (result.IsSuccess()) { Transaction transaction = result.Target; this.FlashInfo("Success!: " + transaction.Id); return RedirectToAction("ThankYou"); } else if (result.Transaction != null) { var sb = new StringBuilder(); sb.AppendFormat("Message: {0}", result.Message); Transaction transaction = result.Transaction; sb.AppendFormat("Error processing transaction:"); sb.AppendFormat(" Status: {0}", transaction.Status); sb.AppendFormat(" Code: {0}", transaction.ProcessorResponseCode); sb.AppendFormat(" Text: {0}", transaction.ProcessorResponseText); this.FlashError(sb.ToString()); } else { var sb = new StringBuilder(); sb.AppendFormat("Message: {0}", result.Message); foreach (ValidationError error in result.Errors.DeepAll()) { sb.AppendFormat("Attribute: {0}", error.Attribute); sb.AppendFormat(" Code: {0}", error.Code); sb.AppendFormat(" Message: {0}", error.Message); } var errorMessage = sb.ToString(); this.FlashError("Error"); } return View(payment); }
public ActionResult Pay(PaymentModel model, FormCollection form) { MakePaymentResult makePaymentResult = null; PostProcessPaymentRequest postProcessPaymentRequest = null; var confirm = new ConfirmModel(); try { var warnings = ValidatePaymentForm(form); foreach (var warning in warnings) { ModelState.AddModelError("", warning); } if (!ModelState.IsValid) { return(View(confirm)); } var processPaymentRequest = new ProcessPaymentRequest() { AmountTotal = model.Amount, PaymentMethodSystemName = model.SelectedPaymentMethod, Beneficiary = model.Email, CreditCardType = form["CreditCardType"], CreditCardName = form["CardholderName"], CreditCardNumber = form["CardNumber"], CreditCardExpireMonth = int.Parse(form["ExpireMonth"]), CreditCardExpireYear = int.Parse(form["ExpireYear"]), CreditCardCvv2 = form["CardCode"], ClientToken = form["PinCode"], Narration = "Demo Payment" }; var extraData = new Dictionary <string, string>(); makePaymentResult = _orderProcessingService.MakePayment(processPaymentRequest, extraData); if (!makePaymentResult.Success) { confirm.Warnings.AddRange(makePaymentResult.Errors.Select(x => (x))); } } catch (Exception exception) { _logger.Warning(exception.Message, exception); } if (makePaymentResult == null || !makePaymentResult.Success || confirm.Warnings.Any()) { return(View(confirm)); } try { postProcessPaymentRequest = new PostProcessPaymentRequest { Settlement = new Settlement() { PaymentMethodSystemName = model.SelectedPaymentMethod } }; _paymentService.PostProcessPayment(postProcessPaymentRequest); } catch (Exception exception) { _logger.Error(exception.Message, exception); } if (postProcessPaymentRequest != null && !string.IsNullOrEmpty(postProcessPaymentRequest.RedirectUrl)) { return(Redirect(postProcessPaymentRequest.RedirectUrl)); } return(RedirectToAction("Completed")); }
public JsonResult <JsonResponse> Process([FromBody] PaymentModel model) { try { IsTokenValid(RequestTypeEnum.PaymentProcess); var assignment = db.Assignments .Include(x => x.Order) .FirstOrDefault(x => x.Id.ToString() == model.assignmentId); if (assignment == null) { throw new Exception("Assignment Not Found"); } if (assignment.Order == null) { throw new Exception("Assignment Order Not Found"); } var order = assignment.Order; string PaymentAmountString = order.PaymentOption == 0 ? order.CodAmount.ToString() : (order.PaymentOption == 1 ? order.OfficeStaff : order.OnlinePayment); int PaymentAmount = 0; Int32.TryParse(PaymentAmountString, out PaymentAmount); PaymentAmount = PaymentAmount * 100; StripeConfiguration.SetApiKey("sk_test_b9puC5Zu17mi3iFgdhfJnsou"); // Token is created using Checkout or Elements! // Get the payment token submitted by the form: var token = model.token; // Using ASP.NET MVC // Charge the user's card: var charges = new StripeChargeService(); var charge = charges.Create(new StripeChargeCreateOptions { Amount = PaymentAmount, Currency = "usd", SourceTokenOrExistingSourceId = token, Description = assignment.AssignmentNumber, StatementDescriptor = "Encore Piano Moving" }); if (!"succeeded".Equals(charge.Status)) { throw new Exception("There is error while processing payment at Stripe."); } var ifAlreadyPaid = db.Payments.Any(x => x.OrderId == assignment.OrderId); if (!ifAlreadyPaid) { db.Payments.Add(new ClientPayment() { Id = Guid.NewGuid(), CreatedAt = DateTime.Now, OrderId = assignment.OrderId, ClientId = order.ClientId, PaymentType = (int)PaymentTypeEnum.CreditCard, Amount = PaymentAmount, TransactionNumber = charge.Id, PaymentDate = charge.Created, }); db.SaveChanges(); } return(Json(new JsonResponse() { IsSucess = true, IsTokenValid = true })); } catch (Exception ex) { return(Json(new JsonResponse() { IsSucess = false, ErrorMessage = ex.Message })); } }
public ResponseModel <OrderModel> UpdatePayment(string orderId, PaymentModel payment) { return(CallApi <OrderModel>(string.Format(ApiUrls.UpdatePayment, orderId), JsonConvert.SerializeObject(payment), Method.POST)); }
/// <summary> /// Creates the payment. /// </summary> /// <param name="form">The order form.</param> /// <param name="methodName">Name of the method.</param> /// <param name="model">The payment model.</param> /// <returns>Payment.</returns> private Payment CreatePayment(OrderForm form, string methodName, PaymentModel model) { var paymentOption = (from o in _paymentOptions where o.Key.Equals(methodName, StringComparison.OrdinalIgnoreCase) select o) .SingleOrDefault(); Payment payment; if (paymentOption != null) { payment = paymentOption.PreProcess(form, model); } else { payment = new OtherPayment { PaymentType = PaymentType.Other.GetHashCode(), BillingAddressId = form.BillingAddressId, PaymentMethodName = model.DisplayName, PaymentMethodId = model.Id, }; } //Common Properties payment.Status = PaymentStatus.Pending.ToString(); payment.OrderForm = form; payment.TransactionType = TransactionType.Sale.ToString(); payment.Amount = form.OrderGroup.Total; return payment; }
public IHttpActionResult AddPayment(PaymentModel paymentModel) { var paymentResult = _paymentService.AddPayment(PaymentModelToPaymentMapper.Map(paymentModel)); return(Json(paymentResult)); }
internal static PaymentModel MakePayment(List<string> LstCodeNumber, int Amount) { // TODO: /* Lst CodeNumber phải đúng hết mới cho phép thanh toán * * */ // Kiểm tra bool isPossible = (LstCodeNumber.Count() > 0); // Bắt buộc phải có CodeNumber bool isExist = (LstCodeNumber.Count() > 0); int iTotalAmount = 0; foreach (string sCodeNumber in LstCodeNumber) { isPossible = isPossible && Generator.isPossibleCode(sCodeNumber); isExist = isExist && PacificCodeBUS.isExist(sCodeNumber); if (isPossible && isExist) { iTotalAmount += PacificCodeBUS.getActualAmount(sCodeNumber); } else { break; } } PaymentModel paymentModel = new PaymentModel(); // Thanh Toán & Trả ra kết quả // *** Giả sử đã thanh toán hết (qua web), đã lưu xuống sau đó gửi lại // thông báo cho admin của trang web nhưng admin không nhận được // => khách hàng bị mất tiền nhưng không nhận được hàng.. SAU NÀY SỬA // getMoneyForPayment => trả ra giá trị đã lấy để thanh toán if (isExist && isPossible && (iTotalAmount >= Amount)) { for(int i = 0; i < LstCodeNumber.Count() && Amount > 0; i++) { Amount = Amount - PacificCodeBUS.getMoneyForPayMent(LstCodeNumber[i], Amount); } paymentModel.Success = true; paymentModel.Message = MessageManager.GetValue("MAKE_PAYMENT_SUCCESS"); } else { paymentModel.Success = false; paymentModel.Message = MessageManager.GetValue("MAKE_PAYMENT_UNSUCCESS"); } return paymentModel; }
public abstract int InsertPayMent(PaymentModel model);