magdv/diadoc-php

Diadoc API实现

0.2.5 2024-07-18 11:43 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
  • 运行Rectocomposer rector(一次性的帮助,但决定保留它)

也可以使用Makefile来执行上述所有功能。

从proto文件生成PHP类

所有选择proto文件的逻辑都位于文件testAuth.php中。如果API描述中的新内容出现,或者突然不够用,那么首先需要在proto文件中进行更改。

  • 进入目录proto,在这里查找所需的或添加新的。
  • 运行composer generate-proto
  • 查看在phpProto目录中生成的内容
  • 现在需要在我们的代码中利用新字段。

也可以使用Makefile来执行上述所有功能。

生成测试证书

https://losst.pro/sozdanie-sertifikata-openssl