urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
plaguekriz
Сообщения: 64
Зарегистрирован: Пн июн 15, 2009 15:28

Сообщение plaguekriz »

php ругается что в стоке

$tariff_link_id = $user_tariff['user_tariffs'][$_POST['tariff_current']]['tariff_link_id'];

не задан индекс tariff_current. Дело в том, что я не через веб-интерфейс делаю, а просто консольным скриптом. Пытался вручную прописать все параметры, но результат нулевой-тариф не меняется, а в дебаге пишет :

DBAInternalError: [rpcf_link_user_tariff] __link_account_next_tariff: tariff not found

Проверял все данные через UTMAdmin тарифы, связки и аккаунт верны. Возможно у кого-то есть такой скрипт, помогите плз.

ph4n70m_d
Сообщения: 19
Зарегистрирован: Чт май 14, 2009 09:53

Сообщение ph4n70m_d »

Народ подскажите пожалуйста! я уже весь моск себе сломал...

добавление пользователю сервисной связки ip-трафик

как не вертел ни крутил, даже на предыдущих страницах как написано тоже делал... И базу с 0 поднимал, но при вызови функции rpcf_add_service_link не видится discount_period_id в debug.log пишет мол я ему передаю 0 вот кусок кода:

Код: Выделить всё

                        $urfa_admin = new URFAClient_Admin("init", "init");
                        $service['user_id'] = $user_id;
                        $service['account_id'] = $basic_account;
                        $service['service_id'] = $s_id;
                        $service['service_type'] = 3;
                        $service['discount_period_id'] = $periods['discount_periods'][1]['discount_period_id'];
                        $service['tariff_link_id'] = 0;
                        $service['ip_groups'][0]['ip_address'] = $ip_a;
                        $service['ip_groups'][0]['mask'] = '255.255.255.255';
                        $service['ip_groups'][0]['ip_not_vpn'] = 1;
                        $service['ip_groups'][0]['iptraffic_login'] = $login;
                        $service['ip_groups'][0]['iptraffic_password'] = $password;
                        print_r ($service);
                        $add_services = $urfa_admin->rpcf_add_service_to_user($service);
                        print_r($add_services);

из debug.log

Код: Выделить всё

DBAExistingError: [rpcf_add_service_to_user] get_discount_period_iter: no such disc per 0
через print_r смотрю данные, выводит что все поля заполнены, до этого неделю назад, я написал, проверил работает, на 4 раз добавления сломалась и все... и не пойму почему %)

PS: Помогите чем сможете... а то я скоро апстену буду биться... :(

noisy
Сообщения: 14
Зарегистрирован: Ср сен 09, 2009 13:11

Сообщение noisy »

ph4n70m_d писал(а):

Код: Выделить всё

                        $service['discount_period_id'] = $periods['discount_periods'][1]['discount_period_id'];
непонятно где ты массив $periods['discount_periods'][1]['discount_period_id'] инициализируешь

ph4n70m_d писал(а): из debug.log

Код: Выделить всё

DBAExistingError: [rpcf_add_service_to_user] get_discount_period_iter: no such disc per 0
тебе же пишут буквами в фай. что расчетного периода 0 не существует

ph4n70m_d
Сообщения: 19
Зарегистрирован: Чт май 14, 2009 09:53

Сообщение ph4n70m_d »

noisy писал(а): непонятно где ты массив $periods['discount_periods'][1]['discount_period_id'] инициализируешь
Вот так инициализирую:

Код: Выделить всё

                        $urfa_admin = new URFAClient_Admin("init", "init");
                        $periods = $urfa_admin->rpcf_get_discount_periods();
noisy писал(а): тебе же пишут буквами в фай. что расчетного периода 0 не существует
Вот посмотри что выдает мне print_r перед вызовом функции:

Код: Выделить всё

Array
(
    [user_id] => 26
    [account_id] => 26
    [service_id] => 1
    [service_type] => 3
    [discount_period_id] => 2
    [tariff_link_id] => 1
    [ip_groups] => Array
        (
            [0] => Array
                (
                    [ip_address] => 10.26.32.7
                    [mask] => 255.255.255.255
                    [ip_not_vpn] => 1
                    [iptraffic_login] => test001
                    [iptraffic_password] => test001
                )

        )

)


NShut
Сообщения: 72
Зарегистрирован: Ср апр 01, 2009 12:39

Сообщение NShut »

rpcf_add_payment_for_account не работает
версия утм 007.
точнее коряво работает у всех или только у меня?

при тестировании данной функции оказалось, что все платежи вносятся хорошо, успешно возращается айди проводки.
Но одно но, баланс в 1 из 3 случаев не перерасчитывается :(
глядя даже на основной отчет. Платежи, исходящий и входящий остаток прибываешь в недоумении.

хотел легкой дорогой добавить через веб внос электронных платежей. Теперь видимо придется задействовать системный скрипт от утм для внесения платежей

---
точнее в другом отчете видно что в эту же секунду происходит откат платежа. Где копать?

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

NShut писал(а):rpcf_add_payment_for_account не работает
версия утм 007.
точнее коряво работает у всех или только у меня?

при тестировании данной функции оказалось, что все платежи вносятся хорошо, успешно возращается айди проводки.
Но одно но, баланс в 1 из 3 случаев не перерасчитывается :(
глядя даже на основной отчет. Платежи, исходящий и входящий остаток прибываешь в недоумении.

хотел легкой дорогой добавить через веб внос электронных платежей. Теперь видимо придется задействовать системный скрипт от утм для внесения платежей

---
точнее в другом отчете видно что в эту же секунду происходит откат платежа. Где копать?
У меня с этой функцией проблем нету версия UTM тоже 007.
Покажите код функции и её вызов в вашей программе.

noisy
Сообщения: 14
Зарегистрирован: Ср сен 09, 2009 13:11

Сообщение noisy »

тогда тебе вместо
ph4n70m_d писал(а):

Код: Выделить всё

$service['discount_period_id'] = $periods['discount_periods'][1]['discount_period_id'];
нужно написать

$service['discount_period_id'] = $periods['discount_periods'][1]['static_id'];

NShut
Сообщения: 72
Зарегистрирован: Ср апр 01, 2009 12:39

Сообщение NShut »

У меня с этой функцией проблем нету версия UTM тоже 007.
Покажите код функции и её вызов в вашей программе.
$accountinfo = $urfa_admin->rpcf_add_payment_for_account($account,$sum,$time,
$time,100,'Electron plats',$id);
if ($accountinfo==FALSE) retdata(7,"Pay not added, return error",0);
$accountinfo = $urfa_admin->rpcf_get_accountinfo($account); //0x2030

вот код, но смысл. Проверил лог, с обычным платежом, лог полностью идентичен. Потестил еще раз, платежи 3 раза прошли, следущий 1 непрошел, точнее прошел и даже баланс правильный вернул, заходим в админку баланс старый, делаем отчет. Опа а был откат. Причем за время где проводился платеж через пхп, отчет формируется ой как долго. Почему ядро сразу откатывает платеж ума не приложу, причем эти откаты не отображаются в основном отчете.
Сейчас пишу полностью функции без использования ядра, только майскул. Надежнее всетаки. Да и заметил я несразу эту ошибку да и не я. т.е. платежи то идут, с балансом косяк изза непонятных откатов

dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

NShut писал(а):$accountinfo = $urfa_admin->rpcf_add_payment_for_account($account,$sum,$time,$time,100,'Electron plats',$id);
burn_date зачем задавать?..

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

dk писал(а):
NShut писал(а):$accountinfo = $urfa_admin->rpcf_add_payment_for_account($account,$sum,$time,$time,100,'Electron plats',$id);
burn_date зачем задавать?..
Вот именно. Проблема именно в этом. И дата платежа и дата сгорания платежа одинаковые. Вот он сразу и сгорает.

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

NShut писал(а): Сейчас пишу полностью функции без использования ядра, только майскул. Надежнее всетаки.
Это напрасно. Ядро кеширует многие данные. Если изменения вносить непосредственно в БД, ядро может не обновить эти данные и будут косяки.
Не зря же урфа клиент стоит столько денег :)

NShut
Сообщения: 72
Зарегистрирован: Ср апр 01, 2009 12:39

Сообщение NShut »

2 forgotten
а урфа клиент куплен :wink:
просто платежи приходят по вебу и хорошо бы было через пхп вносить данные не используя системные скрипты.
Уже написал вспомогательный скрипт который обрабатывает временную таблицу заполняемую через веб, а вот конкретно ввод платежа проводит крон от имени системы.

сразу хотел так делать но хотел как проще, а получилось двойная работа. И конечно хотелось бы узнать в чем проблема

добавка: тьфу, причем тут клиент. платеж вносится с помощью utm_payment_tool

forgotten
Сообщения: 53
Зарегистрирован: Чт авг 28, 2008 08:11

Сообщение forgotten »

NShut писал(а): просто платежи приходят по вебу и хорошо бы было через пхп вносить данные не используя системные скрипты.
Работать напрямую с БД всегда эффективней, но в нашем случае это плохой вариант. Даже родные модули для работы с платёжными системами вызывают utm5_payment_tool.

ph4n70m_d
Сообщения: 19
Зарегистрирован: Чт май 14, 2009 09:53

Сообщение ph4n70m_d »

noisy писал(а):тогда тебе вместо


нужно написать

$service['discount_period_id'] = $periods['discount_periods'][1]['static_id'];
И к сожалению вновь этаже ошибка...

ph4n70m_d
Сообщения: 19
Зарегистрирован: Чт май 14, 2009 09:53

Сообщение ph4n70m_d »

Всем доброго.

Народ подскажите функцию для снятия блокировки пользователя, (не важно, админская блокировка или системная).
Т.к. блокировать блокирует, а разблокировать не хочет О.о.

юзаю функцию <function name="rpcf_block_account" id="0x2037">
Пробовал ставить параметру $block = 0, не помогло...

Ответить