Exemplo n.º 1
0
    def _get_redirect_url(self, **kwargs):
        basket = self.request.basket
        if basket.is_empty:
            raise EmptyBasketException()

        params = {'basket': self.request.basket}

        user = self.request.user
        if self.as_payment_method:
            shipping_addr = self.get_shipping_address()
            if not shipping_addr:
                raise MissingShippingAddressException()
            shipping_method = self.get_shipping_method()
            if not shipping_method:
                raise MissingShippingMethodException()
            params['shipping_address'] = shipping_addr
            params['shipping_method'] = shipping_method
            params['shipping_methods'] = []
        else:
            shipping_methods = Repository().get_shipping_methods(user, basket)
            params['shipping_methods'] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']
            params['scheme'] = 'http'

        if user.is_authenticated():
            params['user'] = user

        return get_paypal_url(**params)
Exemplo n.º 2
0
    def _get_redirect_url(self, **kwargs):
        basket = self.request.basket
        if basket.is_empty:
            raise EmptyBasketException()

        params = {'basket': self.request.basket}

        user = self.request.user
        if self.as_payment_method:
            shipping_addr = self.get_shipping_address()
            if not shipping_addr:
                raise MissingShippingAddressException()
            shipping_method = self.get_shipping_method()
            if not shipping_method:
                raise MissingShippingMethodException()
            params['shipping_address'] = shipping_addr
            params['shipping_method'] = shipping_method
            params['shipping_methods'] = []
        else:
            shipping_methods = Repository().get_shipping_methods(user, basket)
            params['shipping_methods'] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']
            params['scheme'] = 'http'

        if user.is_authenticated():
            params['user'] = user

        return get_paypal_url(**params)
Exemplo n.º 3
0
    def _get_redirect_url(self, basket, **kwargs):
        if basket.is_empty:
            raise EmptyBasketException()

        params = {
            'basket': basket,
            'shipping_methods': []          # setup a default empty list
        }                                   # to support no_shipping

        user = self.request.user
        if self.as_payment_method:
            print 'as payment method'
            if basket.is_shipping_required():
                print 'is shipping required'
                # Only check for shipping details if required.
                shipping_addr = self.get_shipping_address(basket)
                if not shipping_addr:
                    raise MissingShippingAddressException()

                shipping_method = self.get_shipping_method(
                    basket, shipping_addr)
                if not shipping_method:
                    raise MissingShippingMethodException()

                params['shipping_address'] = shipping_addr
                params['shipping_method'] = shipping_method
                params['shipping_methods'] = []

        else:
            # Maik doubts that this code ever worked. Assigning
            # shipping method instances to Paypal params
            # isn't going to work, is it?
            shipping_addr = self.get_shipping_address(basket)
            if not shipping_addr:
                raise MissingShippingAddressException()

            shipping_method = self.get_shipping_method(
                basket, shipping_addr)
            if not shipping_method:
                raise MissingShippingMethodException()

            params['shipping_address'] = shipping_addr
            params['shipping_method'] = shipping_method
            print shipping_method, 'canhho'
            # shipping_methods = Repository().get_shipping_methods(
            #     user=user, basket=basket, request=self.request)
            # params['shipping_methods'] = shipping_methods
            params['shipping_methods'] = []
        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']

        if user.is_authenticated():
            params['user'] = user

        params['paypal_params'] = self._get_paypal_params(basket)

        return get_paypal_url(**params)
Exemplo n.º 4
0
 def perform_action(self):
     basket = Mock()
     basket.id = 1
     basket.total_incl_tax = D('200')
     basket.all_lines = Mock(return_value=[])
     methods = [Free()]
     url_str = get_paypal_url(basket, methods)
     self.url = URL.from_string(url_str)
 def perform_action(self):
     basket = Mock()
     basket.id = 1
     basket.total_incl_tax = D('200')
     basket.all_lines = Mock(return_value=[])
     basket.offer_discounts = []
     basket.voucher_discounts = []
     basket.shipping_discounts = []
     methods = [Free()]
     url_str = get_paypal_url(basket, methods, paypal_params=self.paypal_params)
     self.url = URL.from_string(url_str)
Exemplo n.º 6
0
 def perform_action(self):
     basket = Mock()
     basket.id = 1
     basket.total_incl_tax = D('200')
     basket.all_lines = Mock(return_value=[])
     basket.offer_discounts = []
     basket.voucher_discounts = []
     basket.shipping_discounts = []
     methods = [Free()]
     url_str = get_paypal_url(basket, methods)
     self.url = URL.from_string(url_str)
Exemplo n.º 7
0
    def _get_redirect_url(self, basket, **kwargs):
        if basket.is_empty:
            raise EmptyBasketException()

        params = {
            'basket': basket,
            'shipping_methods': []          # setup a default empty list
        }                                   # to support no_shipping

        user = self.request.user
        # if self.as_payment_method:
        if basket.is_shipping_required():
                # Only check for shipping details if required.
                # shipping_addr = self.get_shipping_address(basket)
                shipping_addr = Order.objects.get(basket=basket).shipping_address
                if not shipping_addr:
                    raise MissingShippingAddressException()

                # shipping_method = self.get_shipping_method(
                #     basket, shipping_addr)
                # if not shipping_method:
                #     raise MissingShippingMethodException()

                params['shipping_address'] = shipping_addr
                # params['shipping_method'] = shipping_method
                # params['shipping_methods'] = []
                shipping_methods = Repository().get_shipping_methods(
                    user=user, basket=basket, request=self.request)
                params['shipping_methods'] = shipping_methods

        # else:
        #     # Maik doubts that this code ever worked. Assigning
        #     # shipping method instances to Paypal params
        #     # isn't going to work, is it?
        #     shipping_methods = Repository().get_shipping_methods(
        #         user=user, basket=basket, request=self.request)
        #     params['shipping_methods'] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']

        if user.is_authenticated():
            params['user'] = user

        params['paypal_params'] = self._get_paypal_params()

        return get_paypal_url(**params)
Exemplo n.º 8
0
    def _get_redirect_url(self, basket, **kwargs):
        if basket.is_empty:
            raise EmptyBasketException()

        params = {
            'basket': basket,
            'shipping_methods': []  # setup a default empty list
        }  # to support no_shipping

        user = self.request.user
        if self.as_payment_method:
            if basket.is_shipping_required():
                # Only check for shipping details if required.
                shipping_addr = self.get_shipping_address(basket)
                if not shipping_addr:
                    raise MissingShippingAddressException()

                shipping_method = self.get_shipping_method(
                    basket, shipping_addr)
                if not shipping_method:
                    raise MissingShippingMethodException()

                params['shipping_address'] = shipping_addr
                params['shipping_method'] = shipping_method
                params['shipping_methods'] = []

        else:
            # Maik doubts that this code ever worked. Assigning
            # shipping method instances to Paypal params
            # isn't going to work, is it?
            shipping_methods = Repository().get_shipping_methods(
                user=user, basket=basket, request=self.request)
            params['shipping_methods'] = shipping_methods

        # Returns the originating host of the request using information from the HTTP_X_FORWARDED_HOST
        # (if USE_X_FORWARDED_HOST is enabled) and HTTP_HOST headers, in that order.
        # If they don’t provide a value, the method uses a combination of SERVER_NAME and SERVER_PORT
        # as detailed in PEP 3333.
        #
        # Example: "127.0.0.1:8000"
        params['host'] = self.request.get_host()

        if user.is_authenticated:
            params['user'] = user

        params['paypal_params'] = self._get_paypal_params()

        return get_paypal_url(**params)
Exemplo n.º 9
0
    def _get_redirect_url(self, **kwargs):
        basket = self.request.basket
        if basket.is_empty:
            raise EmptyBasketException()

        params = {
            'basket': self.request.basket,
            'shipping_methods': []  # setup a default empty list
        }  # to support no_shipping

        user = self.request.user
        if self.as_payment_method:
            if basket.is_shipping_required():
                # Only check for shipping details if required.
                shipping_addr = self.get_shipping_address(basket)
                if not shipping_addr:
                    raise MissingShippingAddressException()

                shipping_method = self.get_shipping_method(
                    basket, shipping_addr)
                if not shipping_method:
                    raise MissingShippingMethodException()

                params['shipping_address'] = shipping_addr
                params['shipping_method'] = shipping_method
                params['shipping_methods'] = []

        else:
            shipping_methods = Repository().get_shipping_methods(user, basket)
            params['shipping_methods'] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']
            if getattr(settings, 'PAYPAL_SANDBOX_MODE', False):
                params['scheme'] = 'http'
            else:
                params['scheme'] = 'https'

        if user.is_authenticated():
            params['user'] = user

        params['paypal_params'] = self._get_paypal_params()

        return get_paypal_url(**params)
Exemplo n.º 10
0
    def _get_redirect_url(self, **kwargs):
        basket = self.request.basket
        if basket.is_empty:
            raise EmptyBasketException()

        params = {
            'basket': self.request.basket,
            'shipping_methods': []          # setup a default empty list
        }                                   # to support no_shipping

        user = self.request.user
        if self.as_payment_method:
            if basket.is_shipping_required():
                # Only check for shipping details if required.
                shipping_addr = self.get_shipping_address(basket)
                if not shipping_addr:
                    raise MissingShippingAddressException()

                shipping_method = self.get_shipping_method(
                    basket, shipping_addr)
                if not shipping_method:
                    raise MissingShippingMethodException()

                params['shipping_address'] = shipping_addr
                params['shipping_method'] = shipping_method
                params['shipping_methods'] = []

        else:
            shipping_methods = Repository().get_shipping_methods(user, basket)
            params['shipping_methods'] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']
            if getattr(settings, 'PAYPAL_SANDBOX_MODE', False):
                params['scheme'] = 'http'
            else:
                params['scheme'] = 'https'

        if user.is_authenticated():
            params['user'] = user

        params['paypal_params'] = self._get_paypal_params()

        return get_paypal_url(**params)
Exemplo n.º 11
0
    def _get_redirect_url(self, **kwargs):
        basket = self.request.basket
        if basket.is_empty:
            messages.error(self.request, "Your basket is empty")
            return reverse('basket:summary')

        params = {'basket': self.request.basket}

        user = self.request.user
        if self.as_payment_method:
            shipping_addr = self.get_shipping_address()
            if not shipping_addr and not self.checkout_session.is_shipping_method_a_not_required_instance():
                messages.error(self.request,
                               "A shipping address must be specified")
                return reverse('checkout:shipping-address')

            shipping_method = self.get_shipping_method()
            if not shipping_method:
                messages.error(self.request,
                               "A shipping method must be specified")
                return reverse('checkout:shipping-method')

            if not self.checkout_session.is_shipping_method_a_not_required_instance():
                params['shipping_address'] = shipping_addr

            params['shipping_method'] = shipping_method
            params['shipping_methods'] = []
        else:
            shipping_methods = Repository().get_shipping_methods(user, basket)
            params['shipping_methods'] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']

        scheme = getattr(settings, 'PAYPAL_RETURN_URL_SCHEME', 'https')
        # if settings.DEBUG:
        #     scheme = 'http'
        params['scheme'] = scheme

        if user.is_authenticated():
            params['user'] = user

        return get_paypal_url(**params)
Exemplo n.º 12
0
    def _get_redirect_url(self, basket, **kwargs):
        if basket.is_empty:
            raise EmptyBasketException()

        params = {"basket": basket, "shipping_methods": []}  # setup a default empty list  # to support no_shipping

        user = self.request.user
        if self.as_payment_method:
            if basket.is_shipping_required():
                # Only check for shipping details if required.
                shipping_addr = self.get_shipping_address(basket)
                if not shipping_addr:
                    raise MissingShippingAddressException()

                shipping_method = self.get_shipping_method(basket, shipping_addr)
                if not shipping_method:
                    raise MissingShippingMethodException()

                params["shipping_address"] = shipping_addr
                params["shipping_method"] = shipping_method
                params["shipping_methods"] = []

        else:
            # Maik doubts that this code ever worked. Assigning
            # shipping method instances to Paypal params
            # isn't going to work, is it?
            shipping_methods = Repository().get_shipping_methods(user=user, basket=basket, request=self.request)
            params["shipping_methods"] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params["host"] = self.request.META["HTTP_HOST"]

        if user.is_authenticated():
            params["user"] = user

        params["paypal_params"] = self._get_paypal_params()

        return get_paypal_url(**params)
Exemplo n.º 13
0
    def _get_redirect_url(self, **kwargs):
        basket = self.request.basket
        if basket.is_empty:
            messages.error(self.request, _("Your basket is empty"))
            return reverse('basket:summary')

        params = {'basket': self.request.basket}

        user = self.request.user
        if self.as_payment_method:
            shipping_addr = self.get_shipping_address()
            if not shipping_addr:
                messages.error(self.request,
                               _("A shipping address must be specified"))
                return reverse('checkout:shipping-address')
            shipping_method = self.get_shipping_method()
            if not shipping_method:
                messages.error(self.request,
                               _("A shipping method must be specified"))
                return reverse('checkout:shipping-method')
            params['shipping_address'] = shipping_addr
            params['shipping_method'] = shipping_method
            params['shipping_methods'] = []
        else:
            shipping_methods = Repository().get_shipping_methods(user, basket)
            params['shipping_methods'] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']
            params['scheme'] = 'http'

        if user.is_authenticated():
            params['user'] = user
            
        params.update(self.get_gateway_kwargs())
        return get_paypal_url(**params)
Exemplo n.º 14
0
    def _get_redirect_url(self, **kwargs):
        basket = self.request.basket
        if basket.is_empty:
            messages.error(self.request, _("Your basket is empty"))
            return reverse('basket:summary')

        params = {'basket': self.request.basket}

        user = self.request.user
        if self.as_payment_method:
            shipping_addr = self.get_shipping_address()
            if not shipping_addr:
                messages.error(self.request,
                               _("A shipping address must be specified"))
                return reverse('checkout:shipping-address')
            shipping_method = self.get_shipping_method()
            if not shipping_method:
                messages.error(self.request,
                               _("A shipping method must be specified"))
                return reverse('checkout:shipping-method')
            params['shipping_address'] = shipping_addr
            params['shipping_method'] = shipping_method
            params['shipping_methods'] = []
        else:
            shipping_methods = Repository().get_shipping_methods(user, basket)
            params['shipping_methods'] = shipping_methods

        if settings.DEBUG:
            # Determine the localserver's hostname to use when
            # in testing mode
            params['host'] = self.request.META['HTTP_HOST']
            params['scheme'] = 'http'

        if user.is_authenticated():
            params['user'] = user

        return get_paypal_url(**params)