Пример #1
0
def yandex_response():

    h = ''
    edlr_acc_id = request.args(0)
    if not edlr_acc_id:
        h += '''not edlr_acc_id in request params'''
        return h

    code = request.vars.get('code')
    if not code:
        #raise HTTP(400, 'ERROR: not code')
        return 'ERROR: not code'

    edlr_acc = db.dealers_accs[edlr_acc_id]
    edlr = edlr_acc and db.dealers[edlr_acc.dealer_id]
    if not edlr: return 'response: edlr or edlr_acc is empty!'

    api_pars, acc_pars, acc_name = ed_YD.get_pars(edlr, edlr_acc)
    r = ed_YD.YmOauthRedirectHandler(api_pars, acc_pars, code)
    accessToken = r.get('access_token', '')
    if accessToken == '':
        return 'ERROR: %s' % r.get('error')

    from datetime import timedelta
    edlr_acc.update_record(
        skey=accessToken,
        expired=request.now + timedelta(1000)  # три года
    )
    return '... received , expired: %s </br>new token: %s' % (edlr_acc.expired,
                                                              accessToken)
Пример #2
0
def pay_test_to_mosenergo_confirm():
    import ed_YD
    deal_acc=db.deal_accs[264]
    deal = db.deals[deal_acc.deal_id]
    dealer_acc = db.dealers_accs[deal.dealers_acc_id]
    dealer = db.dealers[dealer_acc.dealer_id]
    api_pars, acc_pars, acc_name = ed_YD.get_pars(dealer, dealer_acc)
    res = {
        'request_id': '3734353838393737305f323535613763306161373966333461383833613238303266623630316132383264666535353665625f3332333937303939',
        }
    res = ed_YD.YmToConfirm(res, api_pars, dealer_acc.skey)
Пример #3
0
def YmToConfirm():
    session.forget(response)
    if len(request.args) < 2:
        mess = '/[dealer_acc_id]/[request_id]'
        print mess
        return mess

    dealer_acc = db.dealers_accs[request.args(0)]
    dealer = db.dealers[dealer_acc.dealer_id]
    api_pars, acc_pars, acc_name = ed_YD.get_pars(dealer, dealer_acc)
    res = {
        'request_id': '%s' % request.args(1),
    }
    res = ed_YD.YmToConfirm(res, api_pars, dealer_acc.skey)
    return BEAUTIFY(res)
Пример #4
0
def get_yandex_token():
    if len(request.args) == 0:
        mess = CAT(
            'len(request.args)==0',
            BR(),
            H4('Настройка аккаунта на Яндекс.Деньги'),
            UL(
                'в настройках Yandex денег в Мои Приложения создать приложение БЕЗ 2-й аутинификации!!!'
                'задать там ' + DOMEN + '+ https://' + DOMEN + ' support@' +
                DOMEN,
                'задать redirect URL - https://' + DOMEN +
                '/ed_YD/yandex_response/410011949054154 - тонсть номер кашелька добавим',
                'получить ИД приложения - APP_ID',
            ),
            H4('Настройка записи в базе даннных'),
            UL(
                'set YM_REDIRECT_URI = "https://' + DOMEN +
                '/ed_YD/yandex_response" (acc_pars["YM_REDIRECT_URI"] = acc_pars["YM_REDIRECT_URI"] + "/%s" % edlr_acc.id)',
                'set CLIENT_ID = APP_ID',
            ),
        )
        return mess

    edlr_acc = db(db.dealers_accs.acc == request.args[0]).select().first()
    edlr = edlr_acc and db.dealers[edlr_acc.dealer_id]

    if not edlr: return 'not edlr or edlr_acc'

    api_pars, acc_pars, acc_name = ed_YD.get_pars(edlr, edlr_acc)
    print acc_name, ':', acc_pars
    acc_pars[
        'YM_REDIRECT_URI'] = acc_pars['YM_REDIRECT_URI'] + '/%s' % edlr_acc.id

    #return BEAUTIFY([api_pars, acc_pars, acc_name])

    redir_url = ed_YD.YmOauthRequestToken(api_pars, acc_pars)
    if True:
        redirect(redir_url)

    return BEAUTIFY([
        api_pars, acc_pars, acc_name, redir_url,
        'for GO set to TRUUE if in script'
    ])
Пример #5
0
def set_pars_YD(dealer):
    acc = request.vars.acc
    h = CAT(
        DIV(
            LABEL('Account'),': ', INPUT(_name='acc', _value=acc or ''), ' - если аккаунта еще нет в БД - он добавится',
        _class='row '),
        DIV(
        LABEL('secret_response'),': ', INPUT(_name='secret_response'),' - If setted - will update [pkey] - CLIENT_ID is required too!',
            BR(),
        LABEL('CLIENT_ID'),': ', INPUT(_name='CLIENT_ID'),' - надо взять из ЯД - для подключения АПИ: ',
            A('Регистрация приложения', _href='https://money.yandex.ru/myservices/new.xml', _target='_blank'), BR(),
        _class='row gold-bgc'),
        )
    
    secret_response = request.vars.secret_response
    if dealer and acc:
        ed_acc = db((db.dealers_accs.dealer_id==dealer.id) & (db.dealers_accs.acc==acc)).select().first()
        if secret_response:
            from gluon.contrib import simplejson as js
            pars = js.dumps({"CLIENT_ID": request.vars.CLIENT_ID,
                "YM_REDIRECT_URI": "https://"+DOMEN+"/ed_YD/yandex_response",
                "SCOPE": "account-info operation-history operation-details payment-shop.limit(1,37777) payment-p2p.limit(1,37777)",
                "secret_response": secret_response})
            if ed_acc:
                ed_acc.update_record(pkey=pars)
                response.flash = 'updated'
            else:
                #ed_acc = db.dealers_accs[ db.dealers_accs.insert(dealer_id=dealer.id, pkey=pars) ]
                ed_acc = db.dealers_accs[ db.dealers_accs.insert(dealer_id=dealer.id, acc=acc, ecurr_id=request.vars.ecurr, pkey=pars) ]
                response.flash = 'added for ecurr_id ' + request.vars.ecurr
        db.commit()
        
        if ed_acc:
            import ed_YD
            api_pars, acc_pars, acc_name = ed_YD.get_pars(dealer, ed_acc)
            acc_pars['YM_REDIRECT_URI'] = acc_pars['YM_REDIRECT_URI'] + '/%s' % ed_acc.id
            ##return BEAUTIFY([api_pars, acc_pars, acc_name])
            redir_url = ed_YD.YmOauthRequestToken(api_pars, acc_pars)
            h += P(A(H3('For get API token - click it!'), _href = redir_url, _target='_blank'), BR())

        h += DIV(BEAUTIFY(ed_acc))
    return h
Пример #6
0
def YmTo():
    session.forget(response)
    if len(request.args) < 2:
        mess = '/[dealer_acc_id]/[deal_id]?acc=ACC&amo=AMO'
        print mess
        return mess

    dealer_acc = db.dealers_accs[request.args(0)]
    dealer = dealer_acc and db.dealers[dealer_acc.dealer_id]
    deal = dealer and db.deals[request.args(1)]
    dealer_deal = deal and db(
        (db.dealer_deals.deal_id == deal.id)
        & (db.dealer_deals.dealer_id == dealer.id)).select().first()
    if not dealer_deal: return 'NOT dealer_deal'

    acc = request.vars.get('acc', '---???---')
    sum = request.vars.get('sum', '300.0')
    pars_in = {
        # acc_names": ["user", "PROPERTY1", "rapida_param1", "customerNumber", "CustomerNumber"]
        #'PROPERTY1': acc,
        u'customerNumber': acc,
        # SUM_NAMES = ['sum', 'netSum', 'redsum' ]
        u'sum': sum,
        u'pattern_id': dealer_deal.scid,
    }
    test = log_on = None
    api_pars, acc_pars, acc_name = ed_YD.get_pars(dealer, dealer_acc)
    #def YmTo(db, deal, edlr_deal, api_pars, token, acc, amount, acc_name, test=None, log_on=None, pars_in=None):
    res = ed_YD.YmTo(db, deal, dealer_deal, api_pars, dealer_acc.skey, acc,
                     sum, acc_name, test, log_on, pars_in)
    return BEAUTIFY({
        'deal': deal.name,
        'dealer_acc': dealer_acc.acc,
        'pars_in': pars_in,
        'res': res
    })