rommea / diadoc-php
Diadoc API 实现
dev-master
2023-11-28 09:55 UTC
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- google/protobuf: ^3.21
Requires (Dev)
- divineomega/do-file-cache: ^2.0
- overtrue/phplint: ^2.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-28 11:52:05 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
来实现上述所有功能。