示例#1
0
        public static ISubscriptionRequest CreateAuthorizeDotNetSubscriptionRequest(CreditCard creditCard, SubscriptionType subscriptionType, WebSite.Models.User user)
        {
            ISubscriptionRequest request = SubscriptionRequest.CreateNew();

            // Billing address information
            DatabaseContext db          = System.Web.Mvc.DependencyResolver.Current.GetService(typeof(DatabaseContext)) as DatabaseContext;
            string          countryName = db.Countries.Find(creditCard.BillingAddress.CountryId).Name;

            SetSubscriptionBillingAddress(request, creditCard, countryName);

            // Subscription information
            SetSubscriptionBasics(request, subscriptionType);

            // Credit card information
            SetSubscriptionCreditCardInformation(request, creditCard);

            // Customer information
            request.CustomerEmail = user.EmailAddress;
            request.CustomerID    = user.UserId.ToString();

            return(request);
        }
示例#2
0
        private ISubscriptionRequest CreateAuthorizeDotNetSubscriptionRequest(SubscriptionRegistration registrationInformation, WebSite.Models.User user, DateTime startsOn)
        {
            ISubscriptionRequest subscriptionRequest = SubscriptionRequest.CreateNew();

            // Billing address information
            string countryName = _db.Countries.Find(registrationInformation.CreditCard.BillingAddress.CountryId).Name;

            subscriptionRequest.BillingAddress = new AuthorizeNet.Address()
            {
                City    = registrationInformation.CreditCard.BillingAddress.City,
                Country = countryName,
                First   = registrationInformation.CreditCard.CardholderFirstName,
                Last    = registrationInformation.CreditCard.CardholderLastName,
                Phone   = registrationInformation.CreditCard.BillingAddress.PhoneNumber,
                State   = registrationInformation.CreditCard.BillingAddress.ProvinceOrState,
                Street  =
                    registrationInformation.CreditCard.BillingAddress.AddressLine1 +
                    (!string.IsNullOrEmpty(registrationInformation.CreditCard.BillingAddress.AddressLine2) ?
                     (Environment.NewLine + registrationInformation.CreditCard.BillingAddress.AddressLine2) :
                     string.Empty)
                ,
                Zip = registrationInformation.CreditCard.BillingAddress.PostalCode
            };

            // Subscription information
            SubscriptionType selectedSubscriptionType = registrationInformation.AvailableSubscriptionTypes.First(st => st.SubscriptionTypeId == registrationInformation.SelectedSubscriptionTypeId);

            subscriptionRequest.StartsOn         = startsOn;
            subscriptionRequest.Amount           = selectedSubscriptionType.Price;
            subscriptionRequest.SubscriptionName = selectedSubscriptionType.SubscriptionFrequency.Name + " Membership";

            // Subscription interval
            if (selectedSubscriptionType.SubscriptionFrequency.Name == PredefinedSubscriptionFrequencies.Monthly)
            {
                subscriptionRequest.BillingInterval      = 1;
                subscriptionRequest.BillingIntervalUnits = BillingIntervalUnits.Months;
            }
            else if (selectedSubscriptionType.SubscriptionFrequency.Name == PredefinedSubscriptionFrequencies.Quarterly)
            {
                subscriptionRequest.BillingInterval      = 365 / 4;
                subscriptionRequest.BillingIntervalUnits = BillingIntervalUnits.Days;
            }
            else if (selectedSubscriptionType.SubscriptionFrequency.Name == PredefinedSubscriptionFrequencies.Yearly)
            {
                subscriptionRequest.BillingInterval      = 365;
                subscriptionRequest.BillingIntervalUnits = BillingIntervalUnits.Days;
            }
            else
            {
                // TODO: Log Error! We should never hit this case.
            }

            // Credit card information
            subscriptionRequest.CardCode            = registrationInformation.CreditCard.CVV;
            subscriptionRequest.CardExpirationMonth = registrationInformation.CreditCard.ExpirationMonth;
            subscriptionRequest.CardExpirationYear  = registrationInformation.CreditCard.ExpirationYear;
            subscriptionRequest.CardNumber          = registrationInformation.CreditCard.Number;

            // Customer information
            subscriptionRequest.CustomerEmail = user.EmailAddress;
            subscriptionRequest.CustomerID    = user.UserId.ToString();
            return(subscriptionRequest);
        }