예제 #1
0
def pay_test(db,
             deal,
             dealer,
             dealer_acc,
             dealer_deal,
             acc,
             volume_out,
             log_on=None,
             pars_in=None):
    volume_out = round(volume_out, 2)
    if dealer.name == 'Yandex':
        res = ed_YD.pay_test(db, deal, dealer, dealer_acc, dealer_deal, acc,
                             volume_out, log_on, pars_in)
    else:
        res = {
            'status': 'refused',
            'error': 'no dealer',
            'error_description': dealer.name + ' not scripted',
        }

    if res.get('error'):
        try:
            db_common.pay_err_store(db, dealer, dealer_acc, deal, acc,
                                    res.get('error'))
        except Exception as e:
            log(db, e)
        pass

    return res
예제 #2
0
파일: tools.py 프로젝트: isvirin/7pay_in
def pay_err_store():
    import db_common
    res = { 'error': 'eeee' }
    dealer_id = dealer_acc = deal_id = acc = 2
    db_common.pay_err_store(db, dealer_id, dealer_acc, deal_id, acc, res.get('error'))
예제 #3
0
def pay(db,
        deal,
        dealer,
        dealer_acc,
        dealer_deal,
        acc,
        volume_out_full,
        log_on=None,
        pars_in=None):
    fee_curr = db.currs[deal.fee_curr_id]
    curr_out, x, ecurr_out = db_common.get_currs_by_abbrev(db, "RUB")
    if fee_curr.id == curr_out.id:
        fee_rate = 1
    else:
        import rates_lib
        fee_rate = Decimal(
            rates_lib.get_avr_rate_or_null(db, fee_curr.id, curr_out.id))
    ## проверка тут http://127.0.0.1:8000/ipay3_dvlp/tool_deal/fees/BTC/4049/100/1
    volume_out, _ = db_client.dealer_deal_tax_add(db, None, fee_rate,
                                                  dealer_deal, '',
                                                  Decimal(volume_out_full), '')
    volume_out = round(float(volume_out), 2)

    if dealer.name == 'Yandex':
        res = ed_YD.pay(db, deal, dealer, dealer_acc, dealer_deal, acc,
                        volume_out, None, None, log_on, pars_in)
        if res['status'] == u'refused' and res.get(
                'error') == u'authorization_reject':
            # авторизация кончилась - надо этот счет выключить
            print 'pay - authorization_reject for', dealer_acc.acc
            dealer_acc.update_record(used=False)
            #print 'authorization_reject'
    else:
        res = {
            'status': 'refused',
            'error': 'no dealer',
            'error_description': dealer.name + ' not scripted',
        }

    if res and res['status'] == 'success':
        sum_taken = res.get('sum_taken')
        # платеж прошел и было взято с нас, запомним
        if log_on != False:
            print 'ed_common pay() res:', res
        add_trans(
            db,
            dict(dealer_acc_id=dealer_acc.id,
                 info='%s' % res,
                 vars=res,
                 balance=res.get('balance'),
                 amo=-sum_taken,
                 op_id=res.get('payment_id')))

        update_balances(db, dealer, dealer_acc,
                        -sum_taken)  #, res.get('balance'))
    else:
        try:
            db_common.pay_err_store(db, dealer, dealer_acc, deal, acc,
                                    res.get('error'))
        except Exception as e:
            log(db, e)
        pass

    return res