vassepov / diadoc-php
Diadoc API 实现
dev-master
2024-06-14 04:33 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 not auto-updated.
Last update: 2024-09-21 04:03:52 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); }
测试
Тест не дает полной картины работоспособности апи.
Мы не можем быть уверены, что нам всегда возвращают нужные данные, т.к. стенд тестовый.
Тут я скорее проверяют, что обращаюсь куда надо и что плюс-минус все работает.
如何进行开发
在 Compose 中我连接了脚本
- 对于代码风格
composer fix-style
- 从 proto 文件生成 php 类
composer generate-proto
。为了使生成工作,系统中必须安装protobuf
- 运行 Recto
composer rector
(为了一次性帮助,但决定保留)
也可以使用 Makefile
来实现上述所有功能。
从 proto 文件生成 php 类
所有关于选择 proto 文件的逻辑都位于文件 testAuth.php
中。如果 Diadoc API 的描述中出现了新的内容,或者如果确实不够用,那么首先需要在 proto 文件中进行更改。
- 进入目录
proto
,这里我们寻找必要的或者添加新的。 - 运行
composer generate-proto
- 查看我们在
phpProto
文件夹中生成了什么。 - 现在我们需要在代码中使用新的字段。
也可以使用 Makefile
来实现上述所有功能。