2017 © Pedro PelΓ‘ez
 

library urfa-client

Universal PHP client billing system NetUp UTM5 based api.xml

image

k-shym/urfa-client

Universal PHP client billing system NetUp UTM5 based api.xml

  • Friday, July 27, 2018
  • by k-shym
  • Repository
  • 8 Watchers
  • 16 Stars
  • 484 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 5 Open issues
  • 8 Versions
  • 3 % Grown

The README.md

PHP Version Require Latest Version Total Downloads, (*1)

URFAClient

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ PHP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для Π±ΠΈΠ»Π»ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ систСмы NetUp UTM5 Π½Π° основС api.xml, (*2)

Установка (composer)

composer require k-shym/urfa-client "^2.0"

Зависимости

  • UTM 5.2.1-008 >=
  • PHP 5.4 >=
  • Ext: JSON, OpenSSL, SimpleXML, Hash, Filter

ОписаниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

option default описаниС
login* β€” Π»ΠΎΠ³ΠΈΠ½ администратора ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
password* β€” ΠΏΠ°Ρ€ΠΎΠ»ΡŒ администратора ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ соотвСтствСнно
address* β€” адрСс ядра UTM5
port 11758 ΠΏΠΎΡ€Ρ‚ ядра UTM5
timeout 30 врСмя оТидания ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ сСрвСра
protocol auto ssl ΠΈΠ»ΠΈ tls (доступно с вСрсии UTM-5.3-002-update16) ΠΈΠ»ΠΈ auto (доступно с вСрсии UTM-5.3-005-update2, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с OpenSSL 1.1)
admin true ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, Ссли TRUE прСдоставляСт сСртификат admin.crt для соСдинСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ssl
api api_53-006.xml ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Ρ„Π°ΠΉΠ»Π° api.xml

CMD

bin/urfaclient -h

The options are as follows:
   [-a, --api <path> ]             Path to api.xml
   [-f, --function <name>]         Name function from api.xml
   [-t, --type <type>]             Type return (array, json, xml), default: array
   [-l, --list]                    List of functions from api.xml
   [-h, --help ]                   This help
   [-v, --version ]                Version URFAClient

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ rpcf_add_user_new, Ρƒ нас Π΅ΡΡ‚ΡŒ XML описаниС:, (*3)

<function name="rpcf_add_user_new" id="0x2125">
    <input>
        <string name="login"/>
        <string name="password"/>
        <string name="full_name" default=""/>
        <integer name="is_juridical" default="0"/>
        <string name="jur_address" default=""/>
        <string name="act_address" default=""/>
        <string name="flat_number" default=""/>
        <string name="entrance" default=""/>
        <string name="floor" default=""/>
        <string name="district" default=""/>
        <string name="building" default=""/>
        <string name="passport" default=""/>
        <integer name="house_id" default="0"/>
        <string name="work_tel" default=""/>
        <string name="home_tel" default=""/>
        <string name="mob_tel" default=""/>
        <string name="web_page" default=""/>
        <string name="icq_number" default=""/>
        <string name="tax_number" default=""/>
        <string name="kpp_number" default=""/>
        <string name="email" default=""/>
        <integer name="bank_id" default="0"/>
        <string name="bank_account" default=""/>
        <string name="comments" default=""/>
        <string name="personal_manager" default=""/>
        <integer name="connect_date" default="0"/>
        <integer name="is_send_invoice" default="0"/>
        <integer name="advance_payment" default="0"/>

        <integer name="switch_id" default="0"/>
        <integer name="port_number" default="0"/>
        <integer name="binded_currency_id" default="810"/>

        <integer name="parameters_count" default="size(parameter_value)"/>
        <for name="i" from="0" count="size(parameter_value)">
            <integer name="parameter_id" array_index="i"/>
            <string name="parameter_value" array_index="i"/>
        </for>

        <integer name="groups_count" default="size(groups)"/>
        <for name="i" from="0" count="size(groups)">
            <integer name="groups" array_index="i"/>
        </for>

        <integer name="is_blocked" default="0"/>
        <double name="balance" default="0.0"/>
        <double name="credit" default="0.0"/>
        <double name="vat_rate" default="0.0"/>
        <double name="sale_tax_rate" default="0.0"/>
        <integer name="int_status" default="1"/>
    </input>
    <output>
        <integer name="user_id"/>
        <if variable="user_id" value="0" condition="eq">
            <integer name="error_code"/>
            <string name="error_description"/>
        </if>
        <if variable="user_id" value="0" condition="ne">
            <integer name="basic_account"/>
        </if>
    </output>
</function>

И Ρ‚Π°ΠΊ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (элСмСнт input) Π² ассоциативный массив. Если Π² элСмСнтС присутствуСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ default, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ считаСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ., (*4)

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ rpcf_add_user_new ΠΈΠ· api.xml:, (*5)

bin/urfaclient -f rpcf_add_user_new -t json

```json { "login": "", "password": "", "full_name": "", "is_juridical": 0, "jur_address": "", "act_address": "", "flat_number": "", "entrance": "", "floor": "", "district": "", "building": "", "passport": "", "house_id": 0, "work_tel": "", "home_tel": "", "mob_tel": "", "web_page": "", "icq_number": "", "tax_number": "", "kpp_number": "", "email": "", "bank_id": 0, "bank_account": "", "comments": "", "personal_manager": "", "connect_date": 0, "is_send_invoice": 0, "advance_payment": 0, "switch_id": 0, "port_number": 0, "binded_currency_id": 0, "parameters_count": [ { "parameter_id": 0, "parameter_value": "" } ], "groups_count": [ { "groups": 0 } ], "is_blocked": 0, "balance": 0, "credit": 0, "vat_rate": 0, "sale_tax_rate": 0, "int_status": 0 }, (*6)

На основС Π΄Π°Π½Π½ΠΎΠ³ΠΎ описания оставляСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π½Π°ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, порядок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π΅Π²Π°ΠΆΠ΅Π½.

Как Π±Ρ‹Π»ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π΅Π½ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ UTM5 Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠžΡ‚ΡΡŽΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊ вопрос, ΠΊΠ°ΠΊΠΎΠ΅ имя Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ `for` для элСмСнтов массива?
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ принято Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° счСтчика `*_count`. Π’ нашСм случаС Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊ:
```php
[
    // ...
    'parameters_count' => [
        [
            'parameter_id' => 0,
            'parameter_value' => 'ΠΌ',
        ],
        [
            'parameter_id' => 1,
            'parameter_value' => '13.06.2014',
        ],
    ],
    'groups_count' => [
        [
            'groups' => 1000,
        ],
        [
            'groups' => 1001,
        ],
    ],
    // ...
];

Если попадСтся элСмСнт error Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ XML Described error:, Π° Π΄Π°Π»Π΅Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ошибки., (*7)

C условиями if всС просто, Ссли истина, Ρ‚ΠΎ Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π²Π½ΡƒΡ‚Ρ€ΡŒ. И содСрТаниС обрабатываСтся, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅., (*8)

Π’ ΠΈΡ‚ΠΎΠ³Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:, (*9)

require __DIR__ . '/vendor/autoload.php';
use URFAClient\URFAClient;

$urfa = URFAClient::init([
    'login'    => 'init',
    'password' => 'init',
    'address'  => 'localhost',
]);

$result = $urfa->rpcf_add_user_new([
    'login'=>'test',
    'password'=>'test',
]);

$result = $urfa->rpcf_add_user_new('{
  "login": "test2",
  "password": "test2"
}');

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $result ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ описаны Π² элСмСнтС output., (*10)

ВСсты

docker-compose up -d
docker exec -t urfa composer install
docker exec -t urfa vendor/bin/phpunit --coverage-text

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

  • Π’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π° вСрсии Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° UTM-5.3-003, UTM-5.4-004 ΠΈ UTM-5.5-015
  • Π’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π΅ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· api.xml
  • ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ api.xml ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряйтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

По возникшим ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ присылайтС api.xml ΠΈ ΠΏΠΎΠ»Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ядра UTM5. Π£Π΄Π°Ρ‡ΠΈ!, (*11)

The Versions

27/07 2018

dev-master

9999999-dev

Universal PHP client billing system NetUp UTM5 based api.xml

  Sources   Download

GPL-3.0

The Requires

  • php >=5.3.3

 

21/06 2018

1.x-dev

1.9999999.9999999.9999999-dev

Universal PHP client billing system NetUp UTM5 based api.xml

  Sources   Download

GPL-3.0

The Requires

  • php >=5.3.3

 

21/06 2018

1.3.0

1.3.0.0

Universal PHP client billing system NetUp UTM5 based api.xml

  Sources   Download

GPL-3.0

The Requires

  • php >=5.3.3

 

01/09 2017

1.1.0

1.1.0.0

Universal PHP client billing system NetUp UTM5 based api.xml

  Sources   Download

GPL-3.0

The Requires

  • php >=5.3.3

 

15/10 2015

1.0.11

1.0.11.0

Universal PHP client billing system NetUp UTM5 based api.xml

  Sources   Download

GPL-3.0

The Requires

  • php >=5.3.3

 

04/06 2015

1.0.10

1.0.10.0

Universal PHP client billing system NetUp UTM5 based api.xml

  Sources   Download

GPL-3.0

The Requires

  • php >=5.3.3

 

13/02 2015

1.0.9

1.0.9.0

Universal PHP client billing system NetUp UTM5 based api.xml

  Sources   Download

GPL-3.0

The Requires

  • php >=5.3.3

 

18/01 2015

1.0.8

1.0.8.0

Universal PHP client billing system NetUp UTM5 based api.xml

  Sources   Download

GPL-3.0

The Requires

  • php >=5.3.3