public Task <Result> SendPaymentConfirmation(PaymentLinkData link) { var payload = new PaymentLinkPaymentConfirmation { Date = FormatDate(link.Date), Amount = MoneyFormatter.ToCurrencyString(link.Amount, link.Currency), ReferenceCode = link.ReferenceCode, ServiceDescription = link.ServiceType.ToString(), }; return(_mailSender.Send(_options.PaymentConfirmationMailTemplateId, link.Email, payload)); }
public Task <Result> SendLink(PaymentLinkData link, string paymentUrl) { var payload = new PaymentLinkMail { Amount = MoneyFormatter.ToCurrencyString(link.Amount, link.Currency), Comment = link.Comment, ServiceDescription = link.ServiceType.ToString(), ReferenceCode = link.ReferenceCode, PaymentLink = paymentUrl }; return(_mailSender.Send(_options.LinkMailTemplateId, link.Email, payload)); }
public async Task SendLink(PaymentLinkData linkData) { var requestString = JsonConvert.SerializeObject(linkData); Log.Information($"Sending link to e-mail. Link data: {requestString}"); var result = await _edoHttpClient.PostAsync(UrlHelper.CombineUri(_apiUrl, SendLinkUrl), new StringContent(requestString, Encoding.UTF8, "application/json")); if (!result.IsSuccessStatusCode) { Log.Error($"Failed to send link, response: {result.Content.ReadAsStringAsync().Result}"); throw new HttpRequestException(result.ReasonPhrase); } }
public Task <Result> SendPaymentConfirmation(PaymentLinkData link) { var payload = new PaymentLinkPaymentConfirmation { Date = DateTimeFormatters.ToDateString(link.Date), Amount = MoneyFormatter.ToCurrencyString(link.Amount, link.Currency), ReferenceCode = link.ReferenceCode, ServiceDescription = link.ServiceType.ToString(), }; return(_notificationService.Send(messageData: payload, notificationType: NotificationTypes.PaymentLinkPaidNotification, email: link.Email)); }
public Task <Result> SendLink(PaymentLinkData link, string paymentUrl) { var payload = new PaymentLinkMail { Amount = MoneyFormatter.ToCurrencyString(link.Amount, link.Currency), Comment = link.Comment, ServiceDescription = link.ServiceType.ToString(), ReferenceCode = link.ReferenceCode, PaymentLink = paymentUrl }; return(_notificationService.Send(messageData: payload, notificationType: NotificationTypes.ExternalPaymentLinks, email: link.Email)); }
private Task <Result <PaymentResponse> > ProcessResponse(PaymentLinkData link, string code, JObject response) { return(ParseResponse() .TapIf(ShouldSendReceipt, parsedResponse => SendReceipt()) .Map(StorePaymentResult)); Result <PaymentResponse> ParseResponse() { var(_, isFailure, cardPaymentResult, error) = _payfortResponseParser.ParsePaymentResponse(response); if (isFailure) { return(Result.Failure <PaymentResponse>(error)); } return(Result.Success(new PaymentResponse(cardPaymentResult.Secure3d, cardPaymentResult.Status, cardPaymentResult.Message))); } bool ShouldSendReceipt(PaymentResponse parsedResponse) { return(parsedResponse.Status == CreditCardPaymentStatuses.Success && IsNotAlreadyPaid(link));
static bool IsNotAlreadyPaid(PaymentLinkData link) => link.CreditCardPaymentStatus != CreditCardPaymentStatuses.Success;
private Uri GeneratePaymentUri(PaymentLinkData link) => new Uri($"{_paymentLinkOptions.PaymentUrlPrefix}/{link.Code}");