magdv / diadoc-php
Diadoc API实现
0.2.5
2024-07-18 11:43 UTC
Requires
- php: >=8.2
- ext-curl: *
- ext-json: *
- google/protobuf: ^3.21
- symfony/process: ^6.4
Requires (Dev)
- divineomega/do-file-cache: ^2.0
- overtrue/phplint: ^9.0
- phpunit/phpunit: ^8.5
- rector/rector: ^0.14.6
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^3.8
This package is auto-updated.
Last update: 2024-09-18 12:08:39 UTC
README
diadoc.ru的API客户端。
基于另一个客户端进行了开发。https://github.com/agentsib/diadoc-php
开发工作已经停滞很久,不得不添加新方法才能使其正常工作。
示例
<?php declare(strict_types=1); use Diadoc\Proto\GetOrganizationsByInnListRequest; require __DIR__ . '/vendor/autoload.php'; $api = new \MagDv\Diadoc\DiadocApi( '111111111111111111111111111111111', 'https://diadoc-api.kontur.ru/' ); $token = $api->authenticateLogin('ddddddddddd@google.com', 'vvllvlvlv'); // это место использовать только если уже есть токен, когда не надо повторно логиниться $api->setToken($token); // выводим список контрагентов нашей организации $orgId = 'ламлвоалоывлолыовлаоыловалоыва'; $contragents = $api->getCountragentsV2($orgId); // количество контрагентов var_dump($contragents->getTotalCount()); /** @var Diadoc\Proto\Counteragent $item */ foreach ($contragents->getCounteragents() as $item) { $org = $item->getOrganization(); // пример вывода данных из ответа if ($org) { $d = []; $d['konturId'] = $org->getOrgId(); $d['inn'] = $org->getInn(); $d['fullName'] = $org->getFullName(); $d['shortName'] = $org->getShortName(); $d['kpp'] = $org->getKpp(); $d['ogrn'] = $org->getOgrn(); $d['isRoaming'] = $org->getIsRoaming(); } var_dump($d); }
测试
Тест не дает полной картины работоспособности апи.
Мы не можем быть уверены, что нам всегда возвращают нужные данные, т.к. стенд тестовый.
Тут я скорее проверяют, что обращаюсь куда надо и что плюс-минус все работает.
如何进行开发
在Composr中我连接了脚本
- 对于代码风格,使用
composer fix-style
- 从proto文件生成PHP类
composer generate-proto
。为了生成工作,系统必须已安装protobuf
- 运行Recto
composer rector
(一次性的帮助,但决定保留它)
也可以使用Makefile
来执行上述所有功能。
从proto文件生成PHP类
所有选择proto文件的逻辑都位于文件testAuth.php
中。如果API描述中的新内容出现,或者突然不够用,那么首先需要在proto文件中进行更改。
- 进入目录
proto
,在这里查找所需的或添加新的。 - 运行
composer generate-proto
- 查看在
phpProto
目录中生成的内容 - 现在需要在我们的代码中利用新字段。
也可以使用Makefile
来执行上述所有功能。