Как установить URFA клиент на php
Как установить URFA клиент на php
Здравствуйте господа! Прошу помощи у Вас по urfa клиенту. Приобрел его за 45000, но я не спец по API интерфейсу, вот если бы кто подсказал как использовать (установить и настроить) php интерфейс который я видел выложен на форуме (это мне ближе по духу), то я был бы благодарен.
Возможно кто захочет написать небольшое приложение для сопряжения двух систем на mysql уровне, то готов оплатить ваш труд.
Жду ваших ответов на tdk@tdk-servis.ru Заранее спасибо.
Возможно кто захочет написать небольшое приложение для сопряжения двух систем на mysql уровне, то готов оплатить ваш труд.
Жду ваших ответов на tdk@tdk-servis.ru Заранее спасибо.
-
- Сообщения: 309
- Зарегистрирован: Сб апр 16, 2005 11:44
Да господа совершенно верно, я приобрел официально у нетапа урфа-клиент, но не сумел разобраться как это работает. Если вы знаете и можете помочь, то прошу у вас помощи. Если объясните как начать работать с XML вызовами или подскажите ссылку где понятно для "чайника" рассказано, то буду признателен вам! ![Sad :(](./images/smilies/icon_sad.gif)
![Sad :(](./images/smilies/icon_sad.gif)
Там все очень просто и понятно, например:tdk писал(а):Да господа совершенно верно, я приобрел официально у нетапа урфа-клиент, но не сумел разобраться как это работает. Если вы знаете и можете помочь, то прошу у вас помощи. Если объясните как начать работать с XML вызовами или подскажите ссылку где понятно для "чайника" рассказано, то буду признателен вам!
Запускалка скрипта:
Код: Выделить всё
bin\utm5_urfaclient.exe %1 -c bin\utm5_urfaclient.cfg -a edit_user -user_id 135853 -param_103 test103 -param_107 test107
где:
bin\utm5_urfaclient.exe - запускающй файл
%1 - иногда в командной строке ставлю "-debug" для более подробного вывода работы скрипта
-c bin\utm5_urfaclient.cfg - конфиг файл
-a edit_user - имя файла скрипта без расширения
-user_id 135853 -param_103 test103 -param_107 test107 - а это параметры передающиеся в скрипт
Код: Выделить всё
<?xml version="1.0"?>
<urfa>
<call function="rpcf_core_version"/>
</urfa>
Код: Выделить всё
<?xml version="1.0"?>
<urfa>
<!-- Dlia poluchenia info polzovatelia -->
<parameter name="user_id"/>
<!-- Parametri dopustimie k izmeneniu -->
<!-- Parametri !unset! mojno obnuliat!!! -->
<parameter name="set_login"/>
<parameter name="set_passport"/>
<parameter name="set_full_name"/>
<parameter name="set_actual_address"/>
<parameter name="set_house_id"/>
<parameter name="set_building"/>
<parameter name="set_floor"/>
<parameter name="set_flat_number"/>
<parameter name="set_entrance"/>
<parameter name="set_work_telephone" value="!unset!"/>
<parameter name="set_home_telephone" value="!unset!"/>
<parameter name="set_mobile_telephone" value="!unset!"/>
<parameter name="set_comments" value="!unset!"/>
<parameter name="set_connect_date"/>
<parameter name="param_1" value="!unset!"/>
<parameter name="param_2" value="!unset!"/>
<parameter name="param_3"/>
<parameter name="param_4"/>
<parameter name="param_5"/>
<parameter name="param_6"/>
<parameter name="param_7" value="!unset!"/>
<parameter name="param_8"/>
<parameter name="param_9"/>
<parameter name="param_10"/>
<parameter name="param_100" value="!unset!"/>
<parameter name="param_101" value="!unset!"/>
<parameter name="param_102" value="!unset!"/>
<parameter name="param_103" value="!unset!"/>
<parameter name="param_104" value="!unset!"/>
<parameter name="param_105" value=""/>
<parameter name="param_106" value=""/>
<parameter name="param_107" value="!unset!"/>
<parameter name="param_108"/>
<parameter name="param_109"/>
<parameter name="param_110"/>
<parameter name="param_111"/>
<parameter name="param_112"/>
<parameter name="param_113"/>
<parameter name="param_114"/>
<parameter name="param_115"/>
<parameter name="param_116"/>
<parameter name="param_117"/>
<parameter name="param_118"/>
<!-- Poluchaem massiv dop parametrov -->
<call function="rpcf_get_uaparam_list" output="0"/>
<!-- Poluchaem informatciu o polzovatele -->
<call function="rpcf_get_userinfo" output="0"/>
<!-- Vnosim izmenenia s proverkoy i soxranaem -->
<if variable="set_login" value="" condition="ne">
<set dst="login" src="set_login" />
</if>
<if variable="set_passport" value="" condition="ne">
<set dst="passport" src="set_passport" />
</if>
<if variable="set_full_name" value="" condition="ne">
<set dst="full_name" src="set_full_name" />
</if>
<if variable="set_actual_address" value="" condition="ne">
<set dst="act_address" src="set_actual_address" />
</if>
<if variable="set_house_id" value="" condition="ne">
<set dst="house_id" src="set_house_id" />
</if>
<if variable="set_building" value="" condition="ne">
<set dst="building" src="set_building" />
</if>
<if variable="set_floor" value="" condition="ne">
<set dst="floor" src="set_floor" />
</if>
<if variable="set_flat_number" value="" condition="ne">
<set dst="flat_number" src="set_flat_number" />
</if>
<if variable="set_entrance" value="" condition="ne">
<set dst="entrance" src="set_entrance" />
</if>
<if variable="set_connect_date" value="" condition="ne">
<set dst="connect_date" src="set_connect_date" />
</if>
<if variable="set_home_telephone" value="!unset!" condition="ne">
<set dst="home_tel" src="set_home_telephone" />
</if>
<if variable="set_work_telephone" value="!unset!" condition="ne">
<set dst="work_tel" src="set_work_telephone" />
</if>
<if variable="set_mobile_telephone" value="!unset!" condition="ne">
<set dst="mob_tel" src="set_mobile_telephone" />
</if>
<if variable="set_comments" value="!unset!" condition="ne">
<set dst="comments" src="set_comments" />
</if>
<for name="i" from="0" count="uparam_size">
<set dst="magic" value="0" />
<set dst="id_tmp" src="id" src_index="i"/>
<for name="j" from="0" count="size(parameter_id)">
<set dst="parameter_id_tmp" src="parameter_id" src_index="j"/>
<if variable="parameter_id_tmp" value="id_tmp" condition="eq">
<set dst="magic" value="1" />
</if>
</for>
<if variable="magic" value="0" condition="eq">
<set src="id_tmp" dst="parameter_id" dst_index="size(parameter_value)"/>
<set dst="parameter_value" dst_index="size(parameter_value)" value=""/>
</if>
</for>
<for name="i" from="0" count="size(parameter_value)">
<set dst="parameter_id_tmp" src="parameter_id" src_index="i"/>
<if variable="parameter_id_tmp" value="1" condition="eq">
<if variable="param_1" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_1" />
</if>
</if>
<if variable="parameter_id_tmp" value="2" condition="eq">
<if variable="param_2" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_2" />
</if>
</if>
<if variable="parameter_id_tmp" value="3" condition="eq">
<if variable="param_3" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_3" />
</if>
</if>
<if variable="parameter_id_tmp" value="4" condition="eq">
<if variable="param_4" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_4" />
</if>
</if>
<if variable="parameter_id_tmp" value="5" condition="eq">
<if variable="param_5" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_5" />
</if>
</if>
<if variable="parameter_id_tmp" value="6" condition="eq">
<if variable="param_6" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_6" />
</if>
</if>
<if variable="parameter_id_tmp" value="7" condition="eq">
<if variable="param_7" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_7" />
</if>
</if>
<if variable="parameter_id_tmp" value="8" condition="eq">
<if variable="param_8" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_8" />
</if>
</if>
<if variable="parameter_id_tmp" value="9" condition="eq">
<if variable="param_9" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_9" />
</if>
</if>
<if variable="parameter_id_tmp" value="10" condition="eq">
<if variable="param_10" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_10" />
</if>
</if>
<if variable="parameter_id_tmp" value="100" condition="eq">
<if variable="param_100" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_100" />
</if>
</if>
<if variable="parameter_id_tmp" value="101" condition="eq">
<if variable="param_101" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_101" />
</if>
</if>
<if variable="parameter_id_tmp" value="102" condition="eq">
<if variable="param_102" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_102" />
</if>
</if>
<if variable="parameter_id_tmp" value="103" condition="eq">
<if variable="param_103" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_103" />
</if>
</if>
<if variable="parameter_id_tmp" value="104" condition="eq">
<if variable="param_104" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_104" />
</if>
</if>
<if variable="parameter_id_tmp" value="105" condition="eq">
<if variable="param_105" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_105" />
</if>
</if>
<if variable="parameter_id_tmp" value="106" condition="eq">
<if variable="param_106" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_106" />
</if>
</if>
<if variable="parameter_id_tmp" value="107" condition="eq">
<if variable="param_107" value="!unset!" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_107" />
</if>
</if>
<if variable="parameter_id_tmp" value="108" condition="eq">
<if variable="param_108" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_108" />
</if>
</if>
<if variable="parameter_id_tmp" value="109" condition="eq">
<if variable="param_109" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_109" />
</if>
</if>
<if variable="parameter_id_tmp" value="110" condition="eq">
<if variable="param_110" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_110" />
</if>
</if>
<if variable="parameter_id_tmp" value="111" condition="eq">
<if variable="param_111" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_111" />
</if>
</if>
<if variable="parameter_id_tmp" value="112" condition="eq">
<if variable="param_112" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_112" />
</if>
</if>
<if variable="parameter_id_tmp" value="113" condition="eq">
<if variable="param_113" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_113" />
</if>
</if>
<if variable="parameter_id_tmp" value="114" condition="eq">
<if variable="param_114" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_114" />
</if>
</if>
<if variable="parameter_id_tmp" value="115" condition="eq">
<if variable="param_115" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_115" />
</if>
</if>
<if variable="parameter_id_tmp" value="116" condition="eq">
<if variable="param_116" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_116" />
</if>
</if>
<if variable="parameter_id_tmp" value="117" condition="eq">
<if variable="param_117" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_117" />
</if>
</if>
<if variable="parameter_id_tmp" value="118" condition="eq">
<if variable="param_118" value="" condition="ne">
<set dst="parameter_value" dst_index="i" src="param_118" />
</if>
</if>
</for>
<!-- <call function="rpcf_edit_user_new" output="0"/> -->
<call function="rpcf_add_user" output="0"/>
</urfa>
или такой:
Код: Выделить всё
<?xml version="1.0"?>
<urfa>
<parameter name="account_id"/>
<parameter name="tariff_link_id"/>
<parameter name="tariff_current_id"/>
<parameter name="tariff_current"/>
<parameter name="tariff_next"/>
<parameter name="group_id"/>
<parameter name="block_recalc_abon"/>
<parameter name="is_blocked"/>
<parameter name="service_id"/>
<parameter name="service_type"/>
<parameter name="notchange_tp" value="1"/>
<parameter name="add_date" value=""/>
<parameter name="end_date" value=""/>
<!-- Blokiruem akkaunt -->
<call function="rpcf_get_accountinfo"/>
<set dst="is_blocked" value="1792"/>
<call function="rpcf_save_account"/>
<!-- Poluchaem spisok tp u usera ydalaem ix -->
<call function="rpcf_get_user_tariffs"/>
<for name="i" from="0" count="user_tariffs_size">
<set dst="tariff_current_id" src="tariff_current_array" src_index="i"/>
<set dst="tariff_link_id" src="tariff_link_id_array" src_index="i"/>
<set dst="discount_period_id" src="discount_period_id_array" src_index="i"/>
<if variable="tariff_current_id" value="153" condition="eq">
<call function="rpcf_unlink_user_tariff"/>
<set dst="tariff_current" value="202"/>
<set dst="tariff_next" value="202"/>
<set dst="tariff_link_id" value="0"/>
<set dst="service_id" value="490"/>
<set dst="service_type" value="2"/>
<set dst="notchange_tp" value="0"/>
</if>
<if variable="tariff_current_id" value="154" condition="eq">
<call function="rpcf_unlink_user_tariff"/>
<set dst="tariff_current" value="202"/>
<set dst="tariff_next" value="202"/>
<set dst="tariff_link_id" value="0"/>
<set dst="service_id" value="490"/>
<set dst="service_type" value="2"/>
<set dst="notchange_tp" value="0"/>
</if>
<if variable="tariff_current_id" value="155" condition="eq">
<call function="rpcf_unlink_user_tariff"/>
<set dst="tariff_current" value="202"/>
<set dst="tariff_next" value="202"/>
<set dst="tariff_link_id" value="0"/>
<set dst="service_id" value="490"/>
<set dst="service_type" value="2"/>
<set dst="notchange_tp" value="0"/>
</if>
<if variable="tariff_current_id" value="165" condition="eq">
<call function="rpcf_unlink_user_tariff"/>
<set dst="tariff_current" value="190"/>
<set dst="tariff_next" value="190"/>
<set dst="tariff_link_id" value="0"/>
<set dst="service_id" value="433"/>
<set dst="service_type" value="2"/>
<set dst="notchange_tp" value="0"/>
</if>
</for>
<if variable="notchange_tp" value="0" condition="eq">
<!-- Exit esli tariff ne opredelen -->
<if variable="tariff_current" value="" condition="eq">
<set dst="is_blocked" value="0"/>
<call function="rpcf_save_account"/>
<error code="66" comment="Tariff is Null"/>
</if>
<!-- Rasschitivaem datu podkluchenia uslugi -->
<if variable="add_date" value="" condition="eq">
<call function="rpcf_get_discount_period"/>
<set dst="current_date" value="now()"/>
<for name="i" from="current_date" count="3000000">
<if variable="i" value="end_date" condition="lt">
<set src="i" dst="add_date"/>
</if>
<if variable="i" value="end_date" condition="eq">
<break/>
</if>
</for>
</if>
<!-- Dobavliaem TP i service abonentu -->
<call function="rpcf_link_user_tariff"/>
<set dst="return_type" value="integer_return"/>
<set dst="unabon" value="1"/>
<set dst="unprepay" value="1"/>
<set dst="start_date" src="add_date"/>
<call function="rpcf_add_service_to_user" output="0"/>
<out var="slink_id"/>
<out var="tariff_link_id"/>
</if>
<!-- Razblokiruem akkaunt -->
<set dst="block_recalc_abon" value="1"/>
<set dst="is_blocked" value="0"/>
<call function="rpcf_save_account"/>
<!-- Aktivituem -->
<set dst="group_id" value="2001"/>
<call function="rpcf_remove_user_from_group"/>
</urfa>
Код: Выделить всё
<urfa>
<set dst="a" value="2"/>
<set dst="b" value="1"/>
<add dst="c" arg1="a" arg2="b"/> <!--c=a+b-->
<div dst="c" arg1="c" arg2="2"/> <!--c=c/2-->
<mul dst="c" arg1="c" arg2="b"/> <!--c=b*c-->
<sub dst="c" arg1="0" arg2="c"/> <!--c=0-c-->
<out var="c"/>
</urfa>
Код: Выделить всё
gt - больше
ge - больше или равно
lt - меньше
le - меньше или равно
Код: Выделить всё
<urfa>
<parameter name="test"/>
<out var="test"/>
</urfa>
Код: Выделить всё
-a test_massive -test 123 -test 456 -test 789
-
- Сообщения: 309
- Зарегистрирован: Сб апр 16, 2005 11:44
Возможно, я ошибаюсь, но мне показалось, что ТС просит помощи не по принципам работы самого урфа-клиента а по принципу и логике интеграции в сторонний проект. Если в php-urfa - вызвал нужную функцию с нужными параметрами, получил ответ и уже продолжаешь работать с этими данными в приложении, то как здесь? Сначала нужно сгененировать нужный скрипт? Или можно использовать скрипты-шаблоны, задавая дополнительные параметры в коммандной строке? Также, как обработать ответ? Урфа-клиент выдает его в STDOUT? Или в файл? Выдает в виде XML, значит надо парсить?
Я сам использую php версию, но мне не так много и нужно. Тем не менее, было бы любопытно узнать об опыте интеграции именно нетаповского клиента.
Я сам использую php версию, но мне не так много и нужно. Тем не менее, было бы любопытно узнать об опыте интеграции именно нетаповского клиента.
Я не понимаю что Вы имеете в виду, купленный клиент абсолютно прозрачен для пользования, смысл пользоваться php клиентом имеет только при невозможности купить офф.Wishmaster писал(а):Возможно, я ошибаюсь, но мне показалось, что ТС просит помощи не по принципам работы самого урфа-клиента а по принципу и логике интеграции в сторонний проект. Если в php-urfa - вызвал нужную функцию с нужными параметрами, получил ответ и уже продолжаешь работать с этими данными в приложении, то как здесь? Сначала нужно сгененировать нужный скрипт? Или можно использовать скрипты-шаблоны, задавая дополнительные параметры в коммандной строке? Также, как обработать ответ? Урфа-клиент выдает его в STDOUT? Или в файл? Выдает в виде XML, значит надо парсить?
Я сам использую php версию, но мне не так много и нужно. Тем не менее, было бы любопытно узнать об опыте интеграции именно нетаповского клиента.
-
- Сообщения: 309
- Зарегистрирован: Сб апр 16, 2005 11:44
Я понятия не имею, что хочет автор, но думаю, речь идет о том, как купленный урфа-клиент прикрутить, допустим, к php-порталу. Именно практический опыт. Впрочем, возможно я и ошибаюсь.Magnum72 писал(а):Я не понимаю что Вы имеете в виду, купленный клиент абсолютно прозрачен для пользования, смысл пользоваться php клиентом имеет только при невозможности купить офф.Wishmaster писал(а):Возможно, я ошибаюсь, но мне показалось, что ТС просит помощи не по принципам работы самого урфа-клиента а по принципу и логике интеграции в сторонний проект. Если в php-urfa - вызвал нужную функцию с нужными параметрами, получил ответ и уже продолжаешь работать с этими данными в приложении, то как здесь? Сначала нужно сгененировать нужный скрипт? Или можно использовать скрипты-шаблоны, задавая дополнительные параметры в коммандной строке? Также, как обработать ответ? Урфа-клиент выдает его в STDOUT? Или в файл? Выдает в виде XML, значит надо парсить?
Я сам использую php версию, но мне не так много и нужно. Тем не менее, было бы любопытно узнать об опыте интеграции именно нетаповского клиента.
![Smile :-)](./images/smilies/icon_smile.gif)
Здравствуйте Wishmaster! Если у Вас есть желание, то я бы просил пояснить мне, как настроить php-urfa для работы с запросами. Какие именно запросы Вы используете? Если можно, давайте переписываться по электронной почте tdk@tdk-servis.ru
Заранее спасибо, с уважением Вячеслав.
Заранее спасибо, с уважением Вячеслав.
Magnum72, если можно, давайте переписываться по электронной почте tdk@tdk-servis.ru
Заранее спасибо, с уважением Вячеслав.
Заранее спасибо, с уважением Вячеслав.
В архиве есть файлик если не ошибаюсь test.php, пример подключения у УТМ и несколько тестовых вызовов функций для примера.NeXuSs писал(а):Здравствуйте!
Не стал создавать отдельную тему, решил спросить в этой, тематика вопроса схожая.
Magnum72, помогите пожалуйста понять как работать с URFA на php, как настроить для корректной работы, как обращаться.
Искал по форуму, нашел вашу тему про URFAphp, но инструкций там вроде бы нет.
Естественно нужно знание php, ну и назначение самих urfa функций. Больше не знаю что объяснить.
С php проблем нет, example.php посмотрю обязательно.
У меня версия UTM 008, в теме говорилось про совместимость с этой версией. Здесь http://wiki.flintnet.ru/doku.php?id=urfaclient_php есть файлики URFAphp.diff и еще admin.crt, куда их положить нужно и что дальше с ними делать?
У меня версия UTM 008, в теме говорилось про совместимость с этой версией. Здесь http://wiki.flintnet.ru/doku.php?id=urfaclient_php есть файлики URFAphp.diff и еще admin.crt, куда их положить нужно и что дальше с ними делать?