Example #1
0
    def save(self, request, cart, contact, payment_module, data=None):
        """Save the order and the credit card information for this orderpayment"""
        form_presave.send(CreditPayShipForm, form=self)
        if data is None:
            data = self.cleaned_data
        assert (data)
        super(CreditPayShipForm, self).save(request,
                                            cart,
                                            contact,
                                            payment_module,
                                            data=data)

        if self.orderpayment:
            op = self.orderpayment.capture

            cc = CreditCardDetail(orderpayment=op,
                                  expire_month=data['month_expires'],
                                  expire_year=data['year_expires'],
                                  credit_type=data['credit_type'])

            cc.storeCC(data['credit_number'])
            cc.save()

            # set ccv into cache
            cc.ccv = data['ccv']
            self.cc = cc
        form_postsave.send(CreditPayShipForm, form=self)
Example #2
0
    def save(self, request, cart, contact, payment_module, data=None):
        """Save the order and the credit card information for this orderpayment"""
        form_presave.send(CreditPayShipForm, form=self)
        if data is None:
            data = self.cleaned_data
        assert (data)
        super(CreditPayShipForm, self).save(
            request, cart, contact, payment_module, data=data)

        if self.orderpayment:
            op = self.orderpayment.capture

            cc = CreditCardDetail(
                orderpayment=op,
                expire_month=data['month_expires'],
                expire_year=data['year_expires'],
                credit_type=data['credit_type'])

            cc.storeCC(data['credit_number'])
            cc.save()

            # set ccv into cache
            cc.ccv = data['ccv']
            self.cc = cc
        form_postsave.send(CreditPayShipForm, form=self)
Example #3
0
    def clean(self):
        super(CreditPayShipForm, self).clean()
        data = self.cleaned_data
        if not self.is_valid():
            log.debug('form not valid, no early auth')
            return data
        early = config_value('PAYMENT', 'AUTH_EARLY')

        if early:
            processor_module = self.paymentmodule.MODULE.load_module(
                'processor')
            processor = processor_module.PaymentProcessor(self.paymentmodule)
            if processor.can_authorize():
                log.debug('Processing early capture/release for: %s',
                          self.order)
                processor_module = self.paymentmodule.MODULE.load_module(
                    'processor')
                processor = processor_module.PaymentProcessor(
                    self.paymentmodule)
                if self.order:
                    # we have to make a payment object and save the credit card data to
                    # make an auth/release.
                    orderpayment = processor.create_pending_payment(
                        order=self.order, amount=Decimal('0.01'))
                    op = orderpayment.capture

                    cc = CreditCardDetail(orderpayment=op,
                                          expire_month=data['month_expires'],
                                          expire_year=data['year_expires'],
                                          credit_type=data['credit_type'])

                    cc.storeCC(data['credit_number'])
                    cc.save()

                    # set ccv into cache
                    cc.ccv = data['ccv']
                    self.cc = cc
                    results = processor.authorize_and_release(order=self.order)
                if not results.success:
                    log.debug('Payment module error: %s', results)
                    raise forms.ValidationError(results.message)
                else:
                    log.debug('Payment module capture/release success for %s',
                              self.order)
            else:
                log.debug(
                    'Payment module %s cannot do credit authorizations, ignoring AUTH_EARLY setting.',
                    self.paymentmodule.MODULE.value)
        return data
Example #4
0
    def clean(self):
        super(CreditPayShipForm, self).clean()
        data = self.cleaned_data
        if not self.is_valid():
            log.debug('form not valid, no early auth')
            return data
        early = config_value('PAYMENT', 'AUTH_EARLY')

        if early:
            processor_module = self.paymentmodule.MODULE.load_module(
                'processor')
            processor = processor_module.PaymentProcessor(self.paymentmodule)
            if processor.can_authorize():
                log.debug('Processing early capture/release for: %s',
                          self.order)
                processor_module = self.paymentmodule.MODULE.load_module(
                    'processor')
                processor = processor_module.PaymentProcessor(
                    self.paymentmodule)
                if self.order:
                    # we have to make a payment object and save the credit card data to
                    # make an auth/release.
                    orderpayment = processor.create_pending_payment(
                        order=self.order, amount=Decimal('0.01'))
                    op = orderpayment.capture

                    cc = CreditCardDetail(
                        orderpayment=op,
                        expire_month=data['month_expires'],
                        expire_year=data['year_expires'],
                        credit_type=data['credit_type'])

                    cc.storeCC(data['credit_number'])
                    cc.save()

                    # set ccv into cache
                    cc.ccv = data['ccv']
                    self.cc = cc
                    results = processor.authorize_and_release(order=self.order)
                if not results.success:
                    log.debug('Payment module error: %s', results)
                    raise forms.ValidationError(results.message)
                else:
                    log.debug('Payment module capture/release success for %s',
                              self.order)
            else:
                log.debug(
                    'Payment module %s cannot do credit authorizations, ignoring AUTH_EARLY setting.',
                    self.paymentmodule.MODULE.KEY.value)
        return data