diskigor001/pvbki-main

dev-main 2023-04-10 14:53 UTC

This package is not auto-updated.

Last update: 2024-09-24 20:28:56 UTC


README

安装

composer require diskigor001/pvbki-main

使用

推荐使用容器进行依赖注入

配置

使用已实现的配置之一

<?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 的配置,以及一个实现 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();

运行导入方法

SubjectInterfaceStatementType 组合到 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示例

许可证

MIT