public async Task <IEnumerable <TransactionDTO> > Execute(PaymentModel payment) { var customer = await _paymentRepository.GetLastTransaction(payment.OrderId); var service = new RefundService(); var options = new RefundCreateOptions { Charge = customer.ExternalId, }; var orderInfo = new PaymentModel { UserId = customer.UserId, VendorId = customer.VendorId, OrderId = customer.OrderId, Amount = customer.Amount }; var transaction = await _retryHelper.RetryIfThrown(async() => { var result = await service.CreateAsync(options); var test = _mappingProvider.GetMappingOperation(PaymentServiceConstants.PaymentMappingType.Stripe_Refund) .Map(PaymentServiceConstants.PaymentType.Refund, orderInfo, result, result.Created); return(test); }, PaymentServiceConstants.PaymentType.Refund, orderInfo, PaymentServiceConstants.isSucceeded.Succeeded); return(await _paymentRepository.CreateTransactions(transaction)); }
public async Task <IEnumerable <TransactionDTO> > Execute(PaymentModel payment) { var options = new ChargeCreateOptions { Amount = payment.Amount, Currency = payment.Currency, Source = payment.CardToken }; var service = new ChargeService(); var transaction = await _retryHelper.RetryIfThrown(async() => { var result = await service.CreateAsync(options); return(_mappingProvider.GetMappingOperation(PaymentServiceConstants.PaymentMappingType.Stripe_Succeeded) .Map(PaymentServiceConstants.PaymentType.Charge, payment, result, result.Created)); }, PaymentServiceConstants.PaymentType.Charge, payment, PaymentServiceConstants.isSucceeded.Succeeded); return(await _paymentRepository.CreateTransactions(transaction));; }
public async Task <IEnumerable <TransactionDTO> > Execute(PaymentModel payment) { var customer = await _paymentRepository.GetLastTransaction(payment.OrderId); var service = new ChargeService(); var orderInfo = new PaymentModel { UserId = customer.UserId, VendorId = customer.VendorId, OrderId = customer.OrderId, Amount = customer.Amount }; if (!customer.TransactionType.ToUpper().Equals(PaymentServiceConstants.PaymentType.Auth.ToString().ToUpper())) { throw new Exception("Server can not find auth transaction");//TODO: треба ще ексепшин хендлінг } var transaction = await _retryHelper.RetryIfThrown(async() => { var result = await service.CaptureAsync(customer.ExternalId, null); return(_mappingProvider.GetMappingOperation(PaymentServiceConstants.PaymentMappingType.Stripe_Succeeded) .Map(PaymentServiceConstants.PaymentType.Capture, orderInfo, result, result.Created)); }, PaymentServiceConstants.PaymentType.Capture, orderInfo, PaymentServiceConstants.isSucceeded.Succeeded); return(await _paymentRepository.CreateTransactions(transaction)); }