コード例 #1
0
        public virtual async Task <IHttpActionResult> GetRecurringCartsPaymentMethodsAsync(GetRecurringCartsPaymentMethodsRequest request)
        {
            var recurringCartUrl = RecurringCartUrlProvider.GetRecurringCartDetailsUrl(new GetRecurringCartDetailsUrlParam
            {
                CultureInfo       = ComposerContext.CultureInfo,
                RecurringCartName = request.CartName
            });

            //TODO : MyWalletPRovider when ready

            //var addAddressUrl = MyWalletPRovider.GetAddWAlletUrl(new GetMyAccountUrlParam { CultureInfo = ComposerContext.CultureInfo, ReturnUrl = recurringOrderScheduleUrl });
            //var editAddressBaseUrl = MyWalletPRovider.GetUpdateWAlletBaseUrl(new GetMyAccountUrlParam { CultureInfo = ComposerContext.CultureInfo });

            //Will need to change Viewmodel returned

            var providers = await PaymentViewService.GetPaymentProvidersAsync(new GetPaymentProvidersParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
            }).ConfigureAwait(false);

            var results = await PaymentViewService.GetPaymentMethodsAsync(new GetPaymentMethodsParam
            {
                Scope           = ComposerContext.Scope,
                CultureInfo     = ComposerContext.CultureInfo,
                CartName        = request.CartName,
                CustomerId      = ComposerContext.CustomerId,
                ProviderNames   = providers.Select(p => p.ProviderName).ToList(),
                IsAuthenticated = ComposerContext.IsAuthenticated
            });

            return(Ok(results));
        }
コード例 #2
0
        public async Task <IHttpActionResult> GetPaymentMethods(GetPaymentMethodsViewModel request)
        {
            if (request == null)
            {
                return(BadRequest("Request cannot be null."));
            }

            var trustImageVm = ImageService.GetCheckoutTrustImageViewModel(ComposerContext.CultureInfo);

            var vm = await PaymentViewService.GetPaymentMethodsAsync(new GetPaymentMethodsParam
            {
                Scope           = ComposerContext.Scope,
                CultureInfo     = ComposerContext.CultureInfo,
                ProviderNames   = request.Providers.ToList(),
                CartName        = CartConfiguration.ShoppingCartName,
                CustomerId      = ComposerContext.CustomerId,
                IsAuthenticated = ComposerContext.IsAuthenticated
            });

            if (vm?.ActivePaymentViewModel != null)
            {
                vm.ActivePaymentViewModel.CreditCardTrustImage = trustImageVm;
            }

            return(Ok(vm));
        }
コード例 #3
0
        public async Task <IHttpActionResult> UpdatePaymentMethod(UpdatePaymentMethodViewModel request)
        {
            if (request == null)
            {
                return(BadRequest("Request cannot be null."));
            }

            var trustImageVm = ImageService.GetCheckoutTrustImageViewModel(ComposerContext.CultureInfo);

            var vm = await PaymentViewService.UpdatePaymentMethodAsync(new UpdatePaymentMethodParam
            {
                CartName            = CartConfiguration.ShoppingCartName,
                CultureInfo         = ComposerContext.CultureInfo,
                CustomerId          = ComposerContext.CustomerId,
                PaymentId           = request.PaymentId.GetValueOrDefault(),
                Scope               = ComposerContext.Scope,
                PaymentMethodId     = request.PaymentMethodId.GetValueOrDefault(),
                PaymentProviderName = request.PaymentProviderName,
                PaymentType         = request.PaymentType,
                ProviderNames       = request.Providers.ToList(),
                IsAuthenticated     = ComposerContext.IsAuthenticated
            }).ConfigureAwait(false);

            vm.ActivePaymentViewModel.CreditCardTrustImage = trustImageVm;

            return(Ok(vm));
        }
コード例 #4
0
        public virtual async Task <IHttpActionResult> GetRecurringOrderTemplatesPaymentMethodsAsync(GetRecurringOrderTemplatesPaymentMethodsRequest request)
        {
            var recurringOrderScheduleUrl = RecurringScheduleUrlProvider.GetRecurringScheduleDetailsUrl(new GetRecurringScheduleDetailsUrlParam
            {
                CultureInfo         = ComposerContext.CultureInfo,
                RecurringScheduleId = request.Id
            });

            //TODO : MyWalletPRovider when ready

            //var addAddressUrl = MyWalletPRovider.GetAddWAlletUrl(new GetMyAccountUrlParam { CultureInfo = ComposerContext.CultureInfo, ReturnUrl = recurringOrderScheduleUrl });
            //var editAddressBaseUrl = MyWalletPRovider.GetUpdateWAlletBaseUrl(new GetMyAccountUrlParam { CultureInfo = ComposerContext.CultureInfo });

            var param = new GetPaymentProvidersParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo
            };
            var providers = await PaymentViewService.GetPaymentProvidersAsync(param).ConfigureAwait(false);

            var results = await PaymentViewService.GetCustomerPaymentMethodListViewModelAsync(new GetCustomerPaymentMethodListViewModelParam
            {
                CustomerId    = ComposerContext.CustomerId,
                ScopeId       = ComposerContext.Scope,
                CultureInfo   = ComposerContext.CultureInfo,
                ProviderNames = providers.Select(p => p.ProviderName).ToList(),
                //walletUrls
            }).ConfigureAwait(false);

            return(Ok(results));
        }
コード例 #5
0
        public async Task <IHttpActionResult> UpdateCheckoutPayment(UpdatePaymentMethodViewModel request)
        {
            if (request == null)
            {
                return(BadRequest("Request cannot be null."));
            }

            var param = new UpdatePaymentMethodParam
            {
                CartName            = CartConfiguration.ShoppingCartName,
                CultureInfo         = ComposerContext.CultureInfo,
                CustomerId          = ComposerContext.CustomerId,
                PaymentId           = request.PaymentId.GetValueOrDefault(),
                Scope               = ComposerContext.Scope,
                PaymentMethodId     = request.PaymentMethodId.GetValueOrDefault(),
                PaymentProviderName = request.PaymentProviderName,
                PaymentType         = request.PaymentType,
                ProviderNames       = request.Providers.ToList(),
                IsAuthenticated     = ComposerContext.IsAuthenticated
            };

            var vm = await PaymentViewService.UpdateActivePaymentMethodAsync(param);

            return(Ok(vm));
        }
コード例 #6
0
        public virtual async Task <IHttpActionResult> UpdateRecurringCartPaymentMethod([FromBody] UpdateRecurringCartPaymentMethodRequest request)
        {
            if (request == null)
            {
                return(BadRequest("Request cannot be null."));
            }

            var param = new GetPaymentProvidersParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo
            };

            var providers = await PaymentViewService.GetPaymentProvidersAsync(param).ConfigureAwait(false);

            var vm = await PaymentViewService.UpdateRecurringOrderCartPaymentMethodAsync(new UpdatePaymentMethodParam
            {
                CartName            = request.CartName,
                CultureInfo         = ComposerContext.CultureInfo,
                CustomerId          = ComposerContext.CustomerId,
                PaymentId           = request.PaymentId.GetValueOrDefault(),
                Scope               = ComposerContext.Scope,
                PaymentMethodId     = request.PaymentMethodId.GetValueOrDefault(),
                PaymentProviderName = request.PaymentProviderName,
                PaymentType         = request.PaymentType,
                ProviderNames       = providers.Select(p => p.ProviderName).ToList(),
                IsAuthenticated     = ComposerContext.IsAuthenticated
            }, RequestUtils.GetBaseUrl(Request).ToString());

            return(Ok(vm));
        }
コード例 #7
0
        public async Task <IHttpActionResult> GetCheckoutPayment()
        {
            var vm = await PaymentViewService.GetSingleCheckoutPaymentAsync(new GetPaymentMethodsParam
            {
                Scope           = ComposerContext.Scope,
                CultureInfo     = ComposerContext.CultureInfo,
                CartName        = CartConfiguration.ShoppingCartName,
                CustomerId      = ComposerContext.CustomerId,
                IsAuthenticated = ComposerContext.IsAuthenticated
            });

            vm.CreditCardTrustImage = ImageService.GetCheckoutTrustImageViewModel(ComposerContext.CultureInfo);

            return(Ok(vm));
        }
コード例 #8
0
        public virtual async Task <IHttpActionResult> RecurringCartRemovePaymentMethod(RecurringCartRemovePaymentMethodViewModel request)
        {
            await PaymentViewService.RemovePaymentMethodAsync(new RemovePaymentMethodParam
            {
                PaymentMethodId     = request.PaymentMethodId,
                CustomerId          = ComposerContext.CustomerId,
                PaymentProviderName = request.PaymentProviderName,
                ScopeId             = ComposerContext.Scope,
                CartName            = request.CartName
            }).ConfigureAwait(false);

            // Need to return at least a string otherwise jQuery ajax client
            // will fail since it's expected valid json and void is not valid
            return(Ok("OK"));
        }
コード例 #9
0
        public virtual ActionResult CheckoutPayment()
        {
            var checkoutPaymentViewModel = new CheckoutPaymentViewModel
            {
                IsLoading = true
            };

            var getPaymentProvidersParam = new GetPaymentProvidersParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo
            };

            checkoutPaymentViewModel.Context.Add("PaymentProviders", PaymentViewService.GetPaymentProvidersAsync(getPaymentProvidersParam).Result.ToList());

            return(View("CheckoutPaymentContainer", checkoutPaymentViewModel));
        }
コード例 #10
0
        public async Task <IHttpActionResult> GetActivePayment()
        {
            var vm = await PaymentViewService.GetActivePayment(new GetActivePaymentParam
            {
                CustomerId      = ComposerContext.CustomerId,
                CultureInfo     = ComposerContext.CultureInfo,
                CartName        = CartConfiguration.ShoppingCartName,
                Scope           = ComposerContext.Scope,
                IsAuthenticated = ComposerContext.IsAuthenticated
            });

            if (vm != null)
            {
                vm.CreditCardTrustImage = ImageService.GetCheckoutTrustImageViewModel(ComposerContext.CultureInfo);
            }

            return(Ok(vm));
        }