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 "
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()
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, )
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)