diskigor001 / pvbki-main
PVBKI API 集成
dev-main
2023-04-10 14:53 UTC
Requires
- php: >=7.2
- ext-dom: *
- ext-json: *
- ext-simplexml: *
- guzzlehttp/guzzle: ^6.3
- horat1us/environment-config: ^1.2
- myclabs/php-enum: ^1.6.3
- nesbot/carbon: ^1.33
- spatie/array-to-xml: ^2.8
- wearesho-team/base-collection: ^1.0.0
Requires (Dev)
- phpunit/phpunit: ^7.3
- squizlabs/php_codesniffer: ^3.3
This package is not auto-updated.
Last update: 2024-09-24 20:28:56 UTC
README
安装
composer require diskigor001/pvbki-main
使用
推荐使用容器进行依赖注入
配置
使用已实现的配置之一
- 自定义 Config
<?php use Wearesho\Pvbki; $config = new Pvbki\Config( $username = 'username', $password = 'password', $accessPoint = 'access-point', $key = 'key', $mode = Pvbki\Interrelations\ConfigInterface::PRODUCTION_MODE, // or TEST_MODE $url = Pvbki\Interrelations\ConfigInterface::PRODUCTION_URL // or TEST_URL );
- 环境配置:
<?php use Wearesho\Pvbki; $config = new Pvbki\EnvironmentConfig($prefix = 'PVBKI_');
环境变量
示例环境文件内容
PVBKI_USERNAME= PVBKI_PASSWORD= PVBKI_ACCESS_POINT= PVBKI_KEY= PVBKI_URL= PVBKI_MODE=
- 或使用 ConfigInterface 实现自己的配置。
服务实例
要实例化服务,您需要一个实现 ConfigInterface 的配置,以及一个实现 GuzzleHttp/ClientInterface 的客户端。
<?php use Psr\Log; use GuzzleHttp; use Wearesho\Pvbki; $config = new Pvbki\EnvironmentConfig('PVBKI_'); $client = new GuzzleHttp\Client(); $service = new Pvbki\Service($config, $client);
使用 ServiceInterface 来自定义它;
导入方法
识别主体
使用已实现的主体识别之一
<?php use Wearesho\Pvbki; // Subject's passport series and number // series must be in 2 chars length, uppercase and UTF-8 format // number must be in 6 digits length $passport = new Pvbki\Identifications\Passport('АБ', '123456'); // Subject's DRFO number // contains 10 digits $drfo = new Pvbki\Identifications\Drfo('1234567890'); // Subject's OKPO number // contains 8 digits $okpo = new Pvbki\Identifications\Okpo('12345678'); // Subject's name, surname and birthdate of subject // in request body will have format: NameSurnameDDMMYYY $complex = new Pvbki\Identifications\Complex('Name', 'Surname', new DateTime('2018-03-12'));
所有识别都实现 SubjectInterface。如果想要自定义识别对象,请使用它。
语句请求类型
使用两种语句类型之一
<?php use Wearesho\Pvbki\Enums\StatementType; // Use constructor $type = new StatementType(StatementType::BASE); $type = new StatementType(StatementType::SCORING); // Use MyCLabs\Enum\Enum implementation $type = StatementType::BASE(); $type = StatementType::SCORING();
运行导入方法
将 SubjectInterface
和 StatementType
组合到 StatementRequest
中,并运行 import(...)
方法。
您将获得包含请求和响应体的 string
格式的 RequestResponsePair 对象。
<?php use Wearesho\Pvbki; /** @var Pvbki\Interrelations\SubjectInterface $identification*/ /** @var Pvbki\Enums\StatementType $type */ /** @var Pvbki\Interrelations\ServiceInterface $service */ $request = new Pvbki\StatementRequest($identification, $type); $requestResponsePair = $service->import($request); $requestBody = $requestResponsePair->getRequestBody(); $responseBody = $requestResponsePair->getResponseBody();
解析器
您可以解析现有的报告以获取漂亮的对象。
<?php use Wearesho\Pvbki; /** @var string $report */ $reportObj = (new Pvbki\Parser())->parse($report); // It is jsonSerializable $serialized = json_encode($reportObj);
您可以看到 生成的json示例。