コード例 #1
0
        /// <summary>
        /// Gets the URL to capture the payment information.
        /// </summary>
        /// <param name="payment">Payment information.</param>
        /// <param name="cultureInfo">CultureInfo of the request.</param>
        /// <returns>URL to capture the payment information.</returns>
        public virtual string GetCapturePaymentUrl(Overture.ServiceModel.Orders.Payment payment, CultureInfo cultureInfo)
        {
            if (payment.PaymentMethod == null ||
                payment.PaymentMethod.PropertyBag == null ||
                !payment.PaymentMethod.PropertyBag.ContainsKey(HostedCardTokenizationUrl))
            {
                return(null);
            }

            var url = payment.PaymentMethod.PropertyBag[HostedCardTokenizationUrl].ToString();

            Uri rawCaptureUri;

            if (!Uri.TryCreate(url, UriKind.Absolute, out rawCaptureUri))
            {
                return(null);    //TODO: Throw here instead.
            }

            var queryString      = rawCaptureUri.ParseQueryString();
            var finalQueryString = FilterQueryString(queryString, cultureInfo);

            var finalUrl = UrlFormatter.AppendQueryString(rawCaptureUri.GetLeftPart(UriPartial.Path), finalQueryString);

            return(finalUrl);
        }
コード例 #2
0
        public virtual OrderSummaryPaymentViewModel BuildOrderSummaryPaymentViewModel(Overture.ServiceModel.Orders.Payment payment, CultureInfo cultureInfo)
        {
            var creditCartNumber  = string.Empty;
            var expiryDate        = string.Empty;
            var paymentMethodName = string.Empty;

            if (payment.PaymentMethod.PropertyBag != null)
            {
                //TODO : use viewmodelmapper through cartviewmodelfactory ( already exist )
                if (payment.PaymentMethod.Type == PaymentMethodType.SavedCreditCard)
                {
                    if (payment.PaymentMethod.PropertyBag.ContainsKey(SavedCardMask))
                    {
                        creditCartNumber = payment.PaymentMethod.PropertyBag[SavedCardMask].ToString();
                    }

                    if (payment.PaymentMethod.PropertyBag.ContainsKey(SavedExpiryDate))
                    {
                        expiryDate = payment.PaymentMethod.PropertyBag[SavedExpiryDate].ToString();
                    }

                    if (payment.PaymentMethod.PropertyBag.ContainsKey(SavedCardType))
                    {
                        paymentMethodName = payment.PaymentMethod.PropertyBag[SavedCardType].ToString();
                    }
                }
                else
                {
                    if (payment.PaymentMethod.PropertyBag.ContainsKey(CreditCardPaymentProperties.CreditCardNumberLastDigitsKey))
                    {
                        creditCartNumber = payment.PaymentMethod.PropertyBag[CreditCardPaymentProperties.CreditCardNumberLastDigitsKey].ToString();
                    }

                    if (payment.PaymentMethod.PropertyBag.ContainsKey(CreditCardPaymentProperties.CreditCardExpiryDateKey))
                    {
                        expiryDate = payment.PaymentMethod.PropertyBag[CreditCardPaymentProperties.CreditCardExpiryDateKey].ToString();
                    }

                    if (payment.PaymentMethod.PropertyBag.ContainsKey(CreditCardPaymentProperties.CreditCardBrandKey))
                    {
                        paymentMethodName = payment.PaymentMethod.PropertyBag[CreditCardPaymentProperties.CreditCardBrandKey].ToString();
                    }
                }
            }

            DateTime expirationDate;
            bool     hasExpired = false;

            if (DateTime.TryParse(expiryDate, out expirationDate))
            {
                hasExpired = expirationDate < DateTime.UtcNow;
            }

            var paymentVm = new OrderSummaryPaymentViewModel
            {
                FirstName         = payment.BillingAddress.FirstName,
                LastName          = payment.BillingAddress.LastName,
                PaymentMethodName = paymentMethodName,
                CreditCardNumber  = creditCartNumber,
                ExpiryDate        = expiryDate,
                IsExpired         = hasExpired
            };

            paymentVm.BillingAddress = CartViewModelFactory.GetAddressViewModel(payment.BillingAddress, cultureInfo);
            paymentVm.Amount         = LocalizationProvider.FormatPrice((decimal)payment.Amount, cultureInfo);

            return(paymentVm);
        }
コード例 #3
0
 /// <summary>
 /// Augments the ViewModel with useful data.
 /// </summary>
 /// <param name="viewModel">The ViewModel to augment.</param>
 /// <param name="payment">The payment.</param>
 public virtual void AugmentViewModel(ActivePaymentViewModel viewModel, Overture.ServiceModel.Orders.Payment payment)
 {
 }
コード例 #4
0
 /// <summary>
 /// Determines if the payment information should be captured.
 /// </summary>
 /// <param name="payment">Payment information.</param>
 /// <returns>True if the payment should be captured. False otherwise.</returns>
 public virtual bool ShouldCapturePayment(Overture.ServiceModel.Orders.Payment payment)
 {
     //TODO: There may be cases where we'll want to not capture the payment.
     return(true);
 }
コード例 #5
0
 /// <summary>
 /// Gets the URL to capture the payment information.
 /// </summary>
 /// <param name="payment">Payment information.</param>
 /// <param name="cultureInfo">Culture of the request.</param>
 /// <returns>URL to capture the payment information.</returns>
 public virtual string GetCapturePaymentUrl(Overture.ServiceModel.Orders.Payment payment, CultureInfo cultureInfo)
 {
     return(null);
 }
コード例 #6
0
 /// <summary>
 /// Determines if the payment information should be captured.
 /// </summary>
 /// <param name="payment">Payment information.</param>
 /// <returns>True if the payment should be captured. False otherwise.</returns>
 public virtual bool ShouldCapturePayment(Overture.ServiceModel.Orders.Payment payment)
 {
     return(false);
 }
コード例 #7
0
        public virtual OrderSummaryPaymentViewModel BuildOrderSummaryPaymentViewModel(Overture.ServiceModel.Orders.Payment payment, CultureInfo cultureInfo)
        {
            var methodDisplayNames = LookupService.GetLookupDisplayNamesAsync(new GetLookupDisplayNamesParam
            {
                CultureInfo = cultureInfo,
                LookupType  = LookupType.Order,
                LookupName  = "PaymentMethodType",
            }).Result;

            var paymentMethodDisplayName = methodDisplayNames.FirstOrDefault(x => x.Key == payment.PaymentMethod.Type.ToString()).Value;

            var paymentVm = new OrderSummaryPaymentViewModel
            {
                FirstName         = payment.BillingAddress == null ? null: payment.BillingAddress.FirstName,
                LastName          = payment.BillingAddress == null? null : payment.BillingAddress.LastName,
                PaymentMethodName = paymentMethodDisplayName,
            };

            paymentVm.BillingAddress = CartViewModelFactory.GetAddressViewModel(payment.BillingAddress, cultureInfo);
            paymentVm.Amount         = LocalizationProvider.FormatPrice((decimal)payment.Amount, cultureInfo);

            return(paymentVm);
        }