예제 #1
0
    def retry(self, user):
        action = 'retry charging'
        try:
            if self.payment_getaway in [Charge.AUTHORIZE] and self.atransaction:
                self.status = Charge.SUCCESS
                self.save()
                self.add_charge_step(action,
                                     Charge.SUCCESS,
                                     'User "%s" started retry.Previous charge was successfully. Restart canceled'
                                     % user)
            else:
                self \
                    .check_getaway() \
                    .make_charge(retry=True)
                self.add_charge_step(action,
                                     Charge.SUCCESS,
                                     'User "%s" started retry. Charge retry ended successfully' % user)
                if self.customer.email_success:
                    from ppars.apps.core.send_notifications import successful_precharge_restart_customer_notification
                    successful_precharge_restart_customer_notification(self)

            return self
        except Exception, e:
            self.add_charge_step(action,
                                 Charge.ERROR,
                                 'User "%s" started retry. Charge retry ended with error: "%s"' % (user, e))
예제 #2
0
def ajax_cc_retry_and_trans_restart(request):
    charge_id = request.GET.get('id')
    action = 'retry charging'
    if charge_id:
        old_cc = Charge.objects.get(id=charge_id)
        try:
            if old_cc.payment_getaway in [Charge.AUTHORIZE] and old_cc.atransaction:
                old_cc.status = Charge.SUCCESS
                old_cc.save()
                old_cc.add_charge_step(action, Charge.SUCCESS, 'User "%s" started retry.Previous charge was successfully. Restart canceled' % request.user)
            else:
                old_cc = old_cc.check_getaway()
                old_cc.make_charge(retry=True)
                old_cc.add_charge_step(action, Charge.SUCCESS, 'User "%s" started retry. Charge retry ended successfully' % request.user)
                if old_cc.customer.email_success_charge:
                    successful_precharge_restart_customer_notification(old_cc)

            transaction = old_cc.get_last_transaction
            transaction.retry_count = 1
            transaction.state = Transaction.RETRY
            transaction.adv_status = 'Transaction restarted by user %s' % request.user
            transaction.add_transaction_step('Restarted',
                                             'button',
                                             Transaction.SUCCESS,
                                             'User %s restarted transaction.' % request.user)
            transaction.save()
            from ppars.apps.core.tasks import queue_refill
            transaction.was_retried_on_step = False
            queue_refill.delay(transaction.id)
        except Exception, e:
            logger.error("Exception: %s. Trace: %s." % (e, traceback.format_exc(limit=10)))
            old_cc.add_charge_step(action, Charge.ERROR, 'User "%s" started retry. Charge retry ended with error: "%s"' % (request.user, e))
        finally:
예제 #3
0
def ajax_cc_retry(request):
    charge_id = request.GET.get('id')
    action = 'retry  charging'
    if charge_id:
        old_cc = Charge.objects.get(id=charge_id)
        try:
            if old_cc.payment_getaway == Charge.AUTHORIZE and old_cc.atransaction:
                old_cc.status = Charge.SUCCESS
                old_cc.save()
                old_cc.add_charge_step(
                    action, Charge.SUCCESS,
                    'User "%s" started retry.Previous charge was successfully. Restart canceled'
                    % request.user)
            else:
                old_cc = old_cc.check_getaway()
                old_cc.make_charge()
                old_cc.add_charge_step(
                    action, Charge.SUCCESS,
                    'User "%s" started retry. Charge retry ended successfully'
                    % request.user)
                if old_cc.customer.email_success:
                    successful_precharge_restart_customer_notification(old_cc)
        except Exception, e:
            old_cc.add_charge_step(
                action, Charge.ERROR,
                'User "%s" started retry. Charge retry ended with error: "%s"'
                % (request.user, e))
        finally:
예제 #4
0
def ajax_cc_retry(request):
    charge_id = request.GET.get('id')
    action = 'retry charging'
    if charge_id:
        old_cc = Charge.objects.get(id=charge_id)
        try:
            if old_cc.payment_getaway in [Charge.AUTHORIZE] and old_cc.atransaction:
                old_cc.status = Charge.SUCCESS
                old_cc.save()
                old_cc.add_charge_step(action, Charge.SUCCESS, 'User "%s" started retry.Previous charge was successfully. Restart canceled' % request.user)
            else:
                old_cc = old_cc.check_getaway()
                old_cc.make_charge(retry=True)
                old_cc.add_charge_step(action, Charge.SUCCESS, 'User "%s" started retry. Charge retry ended successfully' % request.user)
                if old_cc.customer.email_success_charge:
                    successful_precharge_restart_customer_notification(old_cc)
        except Exception, e:
            logger.error("Exception: %s. Trace: %s." % (e, traceback.format_exc(limit=10)))
            old_cc.add_charge_step(action, Charge.ERROR, 'User "%s" started retry. Charge retry ended with error: "%s"' % (request.user, e))
        finally: