Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public async Task VoidAuthorizationFailed(HSPayment payment, string transactionID, HSOrder order, CreditCardVoidException ex)
 {
     LogVoidAuthorizationFailed(payment, transactionID, order, ex);
     await _sendgrid.EmailVoidAuthorizationFailedAsync(payment, transactionID, order, ex);
 }