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
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'))
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