Exemple #1
0
class PaymentDetailsView(OscarPaymentDetailsView):
    def get(self, *args, **kwargs):
        self.reference_id = self.request.GET.get('reference_id')
        if not self.reference_id:
            return http.HttpBadRequest()
        self.facade = Facade(self.reference_id)
        if not self.preview:
            order_details_response = self.facade.set_order_details(
                str(self.request.basket.total_incl_tax))
        return super(PaymentDetailsView, self).get(*args, **kwargs)

    def post(self, request, *args, **kwargs):
        # Posting to payment-details isn't the right thing to do.  Form
        # submissions should use the preview URL.
        if not self.preview:
            return http.HttpBadRequest()
        if request.POST.get('action', '') == 'place_order':
            return self.handle_place_order_submission(request)
        else:
            return http.HttpBadRequest()

    def get_context_data(self, **kwargs):
        # Add bankcard form to the template context
        ctx = super(PaymentDetailsView, self).get_context_data(**kwargs)
        ctx['seller_id'] = settings.AMAZON_PAYMENTS_SELLER_ID
        reference_id = self.request.GET.get('reference_id', None)
        if reference_id is None:
            raise http.Http404
        ctx['amazon_order_reference_id'] = reference_id
        return ctx

    def handle_place_order_submission(self, request):
        self.reference_id = self.request.GET.get('reference_id')
        if not self.reference_id:
            return http.HttpBadRequest()
        self.facade = Facade(self.reference_id)
        confirm_order_response = self.facade.confirm_order_details()
        return self.facade.fulfill_transaction(
            self.request.basket.total_incl_tax,
            settings.AMAZON_PAYMENTS_CURRENCY)
class PaymentDetailsView(OscarPaymentDetailsView):

    def get(self, *args, **kwargs):
        self.reference_id = self.request.GET.get('reference_id')
        if not self.reference_id:
            return http.HttpBadRequest()
        self.facade = Facade(self.reference_id)
        if not self.preview:
            order_details_response = self.facade.set_order_details(str(self.request.basket.total_incl_tax))
        return super(PaymentDetailsView, self).get(*args, **kwargs)

    def post(self, request, *args, **kwargs):
        # Posting to payment-details isn't the right thing to do.  Form
        # submissions should use the preview URL.
        if not self.preview:
            return http.HttpBadRequest()
        if request.POST.get('action', '') == 'place_order':
            return self.handle_place_order_submission(request)
        else:
            return http.HttpBadRequest()

    def get_context_data(self, **kwargs):
        # Add bankcard form to the template context
        ctx = super(PaymentDetailsView, self).get_context_data(**kwargs)
        ctx['seller_id'] = settings.AMAZON_PAYMENTS_SELLER_ID
        reference_id = self.request.GET.get('reference_id', None)
        if reference_id is None:
            raise http.Http404
        ctx['amazon_order_reference_id'] = reference_id
        return ctx

    def handle_place_order_submission(self, request):
        self.reference_id = self.request.GET.get('reference_id')
        if not self.reference_id:
            return http.HttpBadRequest()
        self.facade = Facade(self.reference_id)
        confirm_order_response = self.facade.confirm_order_details()
        return self.facade.fulfill_transaction(self.request.basket.total_incl_tax, settings.AMAZON_PAYMENTS_CURRENCY)