public void HandlePaywallPayments(DisplayInvoice invoice, string additionalReportingInformation = null, string customerId = null) { try { PaymentGateway pg = new PaymentGateway(); //change invoice to ready to be shipped pg.SetInvoiceStatus(invoice.InvoiceId, InvoiceStatus.Payment_Successful, customerId); CompileAndSendReceiptsEmailsForPaywall(invoice); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType(), additionalInformation: additionalReportingInformation); } }
private Classes.Display.DisplayInvoice PendingPaypalPayment(string invoiceId) { try { PaymentGateway pg = new PaymentGateway(); var invoice = pg.GetDisplayInvoice(new Guid(invoiceId)); if (invoice != null) { if (invoice.Subscription != null) { InvoiceFactory.EmailLeagueAboutSuccessfulSubscription(invoice.Subscription.InternalObject, invoice.InvoiceId, invoice.Subscription.Price, invoice.Subscription.ValidUntil, invoice.InvoiceBilling.Email); RDN.Library.Classes.League.LeagueFactory.UpdateLeagueSubscriptionPeriod(invoice.Subscription.ValidUntil, false, invoice.Subscription.InternalObject); EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal: New Payment Pending!!", invoice.InvoiceId + " Amount:" + invoice.Subscription.Price + CompileReportString()); pg.SetInvoiceStatus(invoice.InvoiceId, InvoiceStatus.Pending_Payment_From_Paypal); WebClient client = new WebClient(); client.DownloadDataAsync(new Uri(ServerConfig.URL_TO_CLEAR_LEAGUE_MEMBER_CACHE + invoice.Subscription.InternalObject)); WebClient client1 = new WebClient(); client1.DownloadDataAsync(new Uri(ServerConfig.URL_TO_CLEAR_LEAGUE_MEMBER_CACHE_API + invoice.Subscription.InternalObject)); } else if (invoice.Paywall != null) { EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal: New Paywall Payment Pending!!", invoice.InvoiceId + " Amount:" + invoice.Paywall.Price + CompileReportString()); pg.SetInvoiceStatus(invoice.InvoiceId, InvoiceStatus.Pending_Payment_From_Paypal); } else if (invoice.DuesItems.Count > 0) HandleDuesPaymentPending(invoice); else if (invoice.InvoiceItems.Count > 0) { StoreGateway sg = new StoreGateway(); sg.HandleStoreItemPaymentPending(invoice, CompileReportString()); } else { EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal: Couldn't Find Subscription", CompileReportString()); } } else { EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal: Couldn't Find Invoice", CompileReportString()); } return invoice; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType(), additionalInformation: CompileReportString()); } return null; }
private Classes.Display.DisplayInvoice FailedPaypalPayment(string invoiceId) { PaymentGateway pg = new PaymentGateway(); try { var invoice = pg.GetDisplayInvoice(new Guid(invoiceId)); if (invoice != null) { if (invoice.Subscription != null) { EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal: Payment Failed", CompileReportString()); InvoiceFactory.EmailLeagueAboutFailedSubscription(invoice.Subscription.InternalObject, invoice.InvoiceId, invoice.Subscription.Price, invoice.Subscription.ValidUntil, invoice.InvoiceBilling.Email); DateTime dateToGoBackTo = invoice.Subscription.ValidUntil.AddDays(-invoice.Subscription.SubscriptionPeriodLengthInDays); pg.SetInvoiceStatus(invoice.InvoiceId, InvoiceStatus.Failed); RDN.Library.Classes.League.LeagueFactory.UpdateLeagueSubscriptionPeriod(dateToGoBackTo, false, invoice.Subscription.InternalObject); } else if (invoice.Paywall != null) { EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal: Paywall Payment Failed", CompileReportString()); pg.SetInvoiceStatus(invoice.InvoiceId, InvoiceStatus.Failed); } else { EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal:Failed Payment", CompileReportString()); } } else { EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal: Couldn't Find Invoice", CompileReportString()); } return invoice; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType(), additionalInformation: CompileReportString()); } return null; }
/// <summary> /// /// </summary> /// <param name="invoice"></param> /// <param name="reportInformation"></param> /// <param name="customerId"></param> /// <returns></returns> public static bool HandleDuesPayments(DisplayInvoice invoice, string reportInformation, string customerId = null) { try { var duesItem = invoice.DuesItems.FirstOrDefault(); bool success = Dues.DuesFactory.PayDuesAmount(duesItem.DuesItemId, duesItem.DuesId, (double)duesItem.BasePrice, duesItem.MemberPaidId, "Paid Via Paypal, Invoice:" + invoice.InvoiceId.ToString().Replace("-", "")); PaymentGateway pg = new PaymentGateway(); pg.SetInvoiceStatus(invoice.InvoiceId, InvoiceStatus.Payment_Successful, customerId); if (success) { //email people. WebClient client = new WebClient(); WebClient client1 = new WebClient(); client.DownloadStringAsync(new Uri(ServerConfig.URL_TO_CLEAR_MEMBER_CACHE + duesItem.MemberPaidId)); client1.DownloadStringAsync(new Uri(ServerConfig.URL_TO_CLEAR_MEMBER_CACHE_API + duesItem.MemberPaidId)); EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Dues Payment Made", reportInformation); var member = MemberCache.GetMemberDisplay(duesItem.MemberPaidId); var league = MemberCache.GetLeagueOfMember(duesItem.MemberPaidId); var settings = Dues.DuesFactory.GetDuesSettings(duesItem.DuesId); if (settings != null && member != null) { var emailData = new Dictionary<string, string> { { "memberName", member.DerbyName }, { "leagueName", settings.LeagueOwnerName }, { "invoiceId", invoice.InvoiceId.ToString().Replace("-","")}, { "amountPaid", duesItem.PriceAfterFees.ToString("N2") }, { "baseAmountPaid",duesItem.BasePrice.ToString("N2") }, { "monthOfDuesPayment",duesItem.PaidForDate.ToShortDateString()}, { "emailForPaypal", settings.PayPalEmailAddress}, { "statusOfPayment",RDN.Portable.Util.Enums.EnumExt.ToFreindlyName( InvoiceStatus.Pending_Payment_From_Paypal)} }; //sends email to user for their payment. if (!String.IsNullOrEmpty(member.UserName)) EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, member.UserName, EmailServer.EmailServer.DEFAULT_SUBJECT + " Dues Payment Receipt", emailData, EmailServer.EmailServerLayoutsEnum.DuesPaymentMadeForUser); else if (!String.IsNullOrEmpty(member.Email)) EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, member.Email, EmailServer.EmailServer.DEFAULT_SUBJECT + " Dues Payment Receipt", emailData, EmailServer.EmailServerLayoutsEnum.DuesPaymentMadeForUser); if (league != null && !String.IsNullOrEmpty(league.Email)) { //sends email to league for notification of their payment. EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, league.Email, EmailServer.EmailServer.DEFAULT_SUBJECT + " Dues Payment Made", emailData, EmailServer.EmailServerLayoutsEnum.DuesPaymentMadeForLeague); } MobileNotificationFactory mnf = new MobileNotificationFactory(); mnf.Initialize("Dues Payment Made", "Receipt For Payment", NotificationTypeEnum.DuesPaymentReceipt) .AddId(invoice.InvoiceId) .AddMember(duesItem.MemberPaidId) .SendNotifications(); } else { throw new Exception("Settings or Member was null. Can't send Receipts." + invoice.InvoiceId); } } else { EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, ServerConfig.DEFAULT_ADMIN_EMAIL_ADMIN, "Paypal: Dues Updates Were not successful", reportInformation); } return true; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType(), additionalInformation: reportInformation); } return false; }