public void LogVoidAuthorizationFailed(HSPayment payment, string transactionID, HSOrder order, CreditCardVoidException ex) { // track in app insights // to find go to Transaction Search > Event Type = Event > Filter by any of these custom properties or event name "Payment.VoidAuthorizationFailed" var customProperties = new Dictionary <string, string> { { "Message", "Attempt to void authorization on payment failed" }, { "OrderID", order.ID }, { "BuyerID", order.FromCompanyID }, { "UserEmail", order.FromUser.Email }, { "PaymentID", payment.ID }, { "TransactionID", transactionID }, { "ErrorResponse", JsonConvert.SerializeObject(ex.ApiError, Formatting.Indented) } }; _telemetry.TrackEvent("Payment.VoidAuthorizationFailed", customProperties); }
public async Task EmailVoidAuthorizationFailedAsync(HSPayment payment, string transactionID, HSOrder order, CreditCardVoidException ex) { var templateData = new EmailTemplate <SupportTemplateData>() { Data = new SupportTemplateData { OrderID = order.ID, DynamicPropertyName1 = "BuyerID", DynamicPropertyValue1 = order.FromCompanyID, DynamicPropertyName2 = "Username", DynamicPropertyValue2 = order.FromUser.Username, DynamicPropertyName3 = "PaymentID", DynamicPropertyValue3 = payment.ID, DynamicPropertyName4 = "TransactionID", DynamicPropertyValue4 = transactionID, ErrorJsonString = JsonConvert.SerializeObject(ex.ApiError) }, Message = new EmailDisplayText() { EmailSubject = "Manual intervention required for this order", DynamicText = "Error encountered while trying to void authorization on this order. Please contact customer and help them manually void authorization" } }; var toList = new List <EmailAddress>(); var supportEmails = _settings?.SendgridSettings?.CriticalSupportEmails.Split(","); foreach (var email in supportEmails) { toList.Add(new EmailAddress { Email = email }); } await SendSingleTemplateEmailMultipleRcpts(_settings?.SendgridSettings?.FromEmail, toList, _settings?.SendgridSettings?.CriticalSupportTemplateID, templateData); }
public async Task VoidAuthorizationFailed(HSPayment payment, string transactionID, HSOrder order, CreditCardVoidException ex) { LogVoidAuthorizationFailed(payment, transactionID, order, ex); await _sendgrid.EmailVoidAuthorizationFailedAsync(payment, transactionID, order, ex); }