static internal PaymentOrderDto MapSITOrdenPagoToPaymentOrderRequest(OrdenPagoDto ordenPago) { PaymentOrderDto paymentOrder = new PaymentOrderDto(); paymentOrder.UID = ordenPago.idPagoElectronico.ToString(); paymentOrder.Issuer = "SECFIN"; paymentOrder.Version = "1.0"; DateTime dateValue; if (DateTime.TryParse(ordenPago.fechaGeneracion, out dateValue)) { paymentOrder.IssueTime = dateValue; } if (DateTime.TryParse(ordenPago.fechaVencimiento, out dateValue)) { paymentOrder.DueDate = dateValue; } paymentOrder.Total = ordenPago.total; paymentOrder.Status = ordenPago.idEstatus.ToString(); return(paymentOrder); }
public async Task <BuildOrderPostRequestResult> BuildOrderPostRequest(PaymentOrderDto paymentOrder) { var apiconfig = await apiconfigRepository.FirstOrDefaultAsync(a => a.CompanyId == paymentOrder.CompanyId && a.ApiMethod == ApiMethod.PlaceOrder && a.SupportedChannels.Any(sc => sc.ChannelId == paymentOrder.ChannelId)); var result = new BuildOrderPostRequestResult { ApiId = apiconfig.Id, Url = apiconfig.Url, AcceptCharset = apiconfig.AcceptCharset, ContentType = apiconfig.ContentType, DataType = apiconfig.DataType, Method = apiconfig.Method, RequestType = apiconfig.RequestType, HasResponeParameter = apiconfig.HasResponseParameter }; var apiRequests = await GetApiParameters(paymentOrder.CompanyId, paymentOrder.ChannelId, ApiMethod.PlaceOrder, ParameterType.ToRequest); if (apiconfig.HasResponseParameter) { var apiRespones = await GetApiParameters(paymentOrder.CompanyId, paymentOrder.ChannelId, ApiMethod.PlaceOrder, ParameterType.FromResponse); result.ApiResponeParameters = apiRespones; } var variable = new ParameterValueProcessor(null, null, null, null, null); var values = variable.GetValues(apiRequests); result.SetHttpValues(values); return(result); }
public ParameterValueProcessor( PaymentApp tenantPaymentApp, CompanyDto company, ApiConfigurationDto apiConfiguration, CompanyAccountDto companyAccount, PaymentOrderDto paymentOrder) { this.paymentOrder = paymentOrder; this.companyAccount = companyAccount; this.apiConfiguration = apiConfiguration; this.tenantPaymentApp = tenantPaymentApp; this.company = company; }
public async Task Handle(OrderEnrolledAcceptedEvent message, CancellationToken cancellationToken) { var pagamentoPedido = new PaymentOrderDto { OrderId = message.OrderId, ClientId = message.ClientId, Total = message.Total, NameCard = message.NameCard, NumberCard = message.NumberCard, ExpirationDateCard = message.ExpirationDateCard, CvvCard = message.CvvCard }; await _paymentService.ExectureOrderPayment(pagamentoPedido); }
public async Task <Transaction> ExectureOrderPayment(PaymentOrderDto paymentOrder) { var order = new Order { Id = paymentOrder.OrderId, ClientId = paymentOrder.ClientId, Total = paymentOrder.Total }; var payment = new Payment { Total = paymentOrder.Total, NameCard = paymentOrder.NameCard, NumberCard = paymentOrder.NumberCard, ExpirationDateCard = paymentOrder.ExpirationDateCard, CvvCard = paymentOrder.CvvCard, OrderId = paymentOrder.OrderId }; var transaction = _paymentCreditCardFacade.ExecutePayment(order, payment); if (transaction.StatusTransaction == StatusTransaction.Paid) { payment.AddEvent(new PaymentRealizedEvent(payment.Id, transaction.Id, order.Id, order.ClientId, order.Total)); _orderRepository.Add(payment); _orderRepository.Add(transaction); await _orderRepository.UnitOfWork.Commit(); return(transaction); } await _mediatorHandler.PublishNotification(new DomainNotification(this.GetType().Name, "A operadora recusou o pagamento")); await _mediatorHandler.PublishEvent(new PaymentRefusedEvent(payment.Id, transaction.Id, order.Id, order.ClientId, order.Total)); return(transaction); }