Exemplo n.º 1
0
def process_command():
	Now = datetime.now()
        admin_system = User.objects.get(id = 1)
        for item in  CardP2PTransfers.objects.filter(status = "auto"):
		time.sleep(1)
                print "process withdraw %s to card %s date %s amnt is %s" %   (item.user.username,
                                                                               item.CardNumber,
                                                                               item.pub_date,
                                                                               item.amnt )
                if (Now - item.pub_date) > timedelta(seconds = 1800):
                        P24 = get_p24()
                        item.status = "processed"
                        item.save()
                        print "start process" 
			Result = None
                        CardNumber = item.CardNumber
                        CardNumber.replace(" ","")
                        try :
                                NewAmnt = get_comisP2P(CardNumber, item.amnt )
                                Result = P24.pay2p(item.id, CardNumber, NewAmnt)
                        except TransError as e:
                                item.status = "processing"
                                item.save()
                                notify_admin_withdraw_fail(item, e.value)
                        except Exception as e:
                                        i.status = "processing"
                                        i.save()
                                        notify_admin_withdraw_fail(i, str(e) )
                                        continue         
                        if Result :
                                p2p_inner_process(admin_system, item)
                        else:
                                item.status = "core_error"
                                item.save()
                                notify_admin_withdraw_fail(item, "bad_status")
                                
                	                
                        time.sleep(1)
                else :
                        print "it's not a time " 
Exemplo n.º 2
0
def pay2p(item, P24):
    admin_system = User.objects.get(id=1)
    item.status = "processed"
    item.save()
    Result = None
    CardNumber = item.CardNumber
    CardNumber.replace(" ", "")
    try:
        NewAmnt = get_comisP2P(CardNumber, item.amnt)
        Result = P24.pay2p(item.id, CardNumber, NewAmnt)
    except TransError as e:
        item.status = "core_error"
        item.save()
    except Exception as e:
        i.status = "core_error"
        i.save()

    if Result:
        p2p_inner_process(admin_system, item)
    else:
        item.status = "core_error"
        item.save()
Exemplo n.º 3
0
def p2p_transfer_withdraw_common_operation(Req, Form):

    Key = generate_key("p2p_ahuihui")
    CardNumber = Form.cleaned_data["CardNumber"]
    CardNumber = CardNumber.replace(" ", "")
    Amnt = Form.cleaned_data["amnt"]
    NewAmnt = get_comisP2P(CardNumber, Decimal(Amnt))
    Transfer = None
    FreqKey = "orders" + str(Req.user.id)

    if not check_freq(FreqKey, 3):
        Response = HttpResponse('{"status":false}')
        Response["Content-Type"] = "application/json"
        return Response

    if NewAmnt < 0:
        Transfer = CardP2PTransfers(
            debit_credit="out",
            CardName=Form.cleaned_data["CardName"],
            CardNumber=CardNumber,
            currency=Form.currency_instance,
            amnt=Amnt,
            pub_date=datetime.datetime.now(),
            user=Req.user,
            confirm_key=Key,
            status="processing2",
        )
        Transfer.sign_record(settings.COMMON_SALT)

    if NewAmnt > 0:
        Transfer = CardP2PTransfers(
            debit_credit="out",
            CardName=Form.cleaned_data["CardName"],
            CardNumber=CardNumber,
            currency=Form.currency_instance,
            amnt=Amnt,
            pub_date=datetime.datetime.now(),
            user=Req.user,
            confirm_key=Key,
            status="auto",
        )
        Transfer.sign_record(settings.COMMON_SALT)

    AccountTo = Accounts.objects.get(user=Req.user, currency=Transfer.currency)
    ## if not by reference, but by users
    TradePair = TradePairs.objects.get(url_title="p2p_transfers")
    order = Orders(
        user=Req.user,
        currency1=Transfer.currency,
        currency2=Transfer.currency,
        sum1_history=Transfer.amnt,
        sum2_history=Transfer.amnt,
        sum1=Transfer.amnt,
        sum2=Transfer.amnt,
        transit_1=AccountTo,
        transit_2=TradePair.transit_from,
        trade_pair=TradePair,
        status="created",
    )
    order.save()
    # TODO add process exception in withdraw p2p
    add_trans(AccountTo, Transfer.amnt, Transfer.currency, TradePair.transit_from, order, "withdraw", Key, True)

    order.status = "processing"
    order.save()
    Transfer.order = order
    Transfer.save()
    notify_admin_withdraw(withdraw_p2p_auto(Transfer))

    send_mail(
        _(u"Подтверждение вывода  ") + settings.BASE_HOST,
        confirm_p2p_withdraw_email_common(Form.cleaned_data, Key),
        settings.EMAIL_HOST_USER,
        [Req.user.email],
        fail_silently=False,
    )
Exemplo n.º 4
0
def p2p_transfer_withdraw_common_operation(Req, Form):
    Key = generate_key("p2p_ahuihui")
    CardNumber = Form.cleaned_data["CardNumber"]
    CardNumber = CardNumber.replace(" ", "")
    Amnt = Form.cleaned_data["amnt"]
    NewAmnt = get_comisP2P(CardNumber, Decimal(Amnt))
    Transfer = None
    FreqKey = "orders" + str(Req.user.id)

    if not check_freq(FreqKey, 3):
        Response = HttpResponse('{"status":false}')
        Response['Content-Type'] = 'application/json'
        return Response

    if NewAmnt < 0:
        Transfer = CardP2PTransfers(
            debit_credit="out",
            CardName=Form.cleaned_data["CardName"],
            CardNumber=CardNumber,
            currency=Form.currency_instance,
            amnt=Amnt,
            pub_date=datetime.datetime.now(),
            user=Req.user,
            confirm_key=Key,
            status="processing2")
        Transfer.sign_record(settings.COMMON_SALT)

    if NewAmnt > 0:
        Transfer = CardP2PTransfers(
            debit_credit="out",
            CardName=Form.cleaned_data["CardName"],
            CardNumber=CardNumber,
            currency=Form.currency_instance,
            amnt=Amnt,
            pub_date=datetime.datetime.now(),
            user=Req.user,
            confirm_key=Key,
            status="auto"
        )
        Transfer.sign_record(settings.COMMON_SALT)

    AccountTo = get_account(user=Req.user, currency=Transfer.currency)
    ## if not by reference, but by users
    TradePair = TradePairs.objects.get(url_title="p2p_transfers")
    order = Orders(user=Req.user,
                   price=Decimal("1"),
                   currency1=Transfer.currency,
                   currency2=Transfer.currency,
                   sum1_history=Transfer.amnt,
                   sum2_history=Transfer.amnt,
                   sum1=Transfer.amnt,
                   sum2=Transfer.amnt,
                   transit_1=AccountTo.acc(),
                   transit_2=TradePair.transit_from,
                   trade_pair=TradePair,
                   status="created"
    )
    order.save()
    # TODO add process exception in withdraw p2p
    add_trans(AccountTo.acc(), Transfer.amnt, Transfer.currency, TradePair.transit_from,
              order, "withdraw", Key, False)

    order.status = "processing"
    order.save()
    Transfer.order = order
    Transfer.save()
    notify_admin_withdraw(withdraw_p2p_auto(Transfer))

    send_mail(_(u'Подтверждение вывода  ') + settings.BASE_HOST,
              confirm_p2p_withdraw_email_common(Form.cleaned_data, Key),
              [Req.user.email],
              fail_silently=False)