avtocod / b2b-api-php

用于与 B2B API 服务交互的 PHP 包

v4.4.0 2022-01-10 07:05 UTC

This package is auto-updated.

Last update: 2024-09-16 16:24:28 UTC


README

logo

B2B API 服务客户端

Version PHP Version Build Status Coverage Downloads count License

安装

使用以下命令通过 composer 安装此包

$ composer require avtocod/b2b-api-php "^4.0"

需要安装 composer如何安装 composer)。

您需要修复包的主要版本。

使用方法

在开始使用此包之前,您必须拥有以下内容

  • 服务用户登录
  • 用户密码
  • 用户域名
  • 报告类型名称

获取这些值,请联系我们的 B2B 销售经理(b2b@avtocod.ru

现在,让我们创建 B2B API 客户端实例

<?php

use Avtocod\B2BApi\Client;
use Avtocod\B2BApi\Settings;
use Avtocod\B2BApi\Tokens\Auth\AuthToken;

$client = new Client(new Settings(AuthToken::generate('username', 'password', 'domain')));

然后我们可以执行以下操作 (每次调用都将返回包含服务器响应数据的对象)

<?php /** @var \Avtocod\B2BApi\Client $client */

// Test connection
$client->devPing(new \Avtocod\B2BApi\Params\DevPingParams);

// Debug token generation
$client->devToken(new \Avtocod\B2BApi\Params\DevTokenParams('username', 'password'));

// Retrieve information about current user
$client->user(new \Avtocod\B2BApi\Params\UserParams);

// Retrieve balance information for report type
$client->userBalance(new \Avtocod\B2BApi\Params\UserBalanceParams('report_type_uid@domain'));

// Retrieve report types data
$client->userReportTypes(new \Avtocod\B2BApi\Params\UserReportTypesParams);

// Get reports list
$client->userReports(new \Avtocod\B2BApi\Params\UserReportsParams);

// Get report by unique report ID
$client->userReport(new \Avtocod\B2BApi\Params\UserReportParams('report_uid_SOMEIDENTIFIERGOESHERE@domain'));

// Make (generate) report
$client->userReportMake(new \Avtocod\B2BApi\Params\UserReportMakeParams('report_type_uid@domain', 'VIN', 'Z94CB41AAGR323020'));

// Refresh existing report
$client->userReportRefresh(new \Avtocod\B2BApi\Params\UserReportRefreshParams('report_uid_SOMEIDENTIFIERGOESHERE@domain'));

例如,如果您想为 A111AA177GRZ 类型)生成报告,您可以

<?php /** @var \Avtocod\B2BApi\Client $client */

// Make report (this operation is asynchronous)
$report_uid = $client
    ->userReportMake(
        (new \Avtocod\B2BApi\Params\UserReportMakeParams('some_report_uid', 'GRZ', 'A111AA177'))
            ->setForce(true)
            ->setOnUpdateUrl('https://example.com/webhook/updated')
            ->setOnCompleteUrl('https://example.com/webhook/completed')
    )
    ->first()
    ->getReportUid();

// Wait for report is ready
while (true) {
    $user_report_params = (new \Avtocod\B2BApi\Params\UserReportParams($report_uid))->setIncludeContent(false);
    if ($client->userReport($user_report_params)->first()->isCompleted()) {
        break;
    }

    \sleep(1);
}

$content = $client->userReport(new \Avtocod\B2BApi\Params\UserReportParams($report_uid))->first()->getContent();

$vin_code  = $content->getByPath('identifiers.vehicle.vin');   // (string) 'JTMHX05J704083922'
$engine_kw = $content->getByPath('tech_data.engine.power.kw'); // (int) 227

测试

对于包测试,我们使用 phpunit 框架和 docker-ce + docker-compose 作为开发环境。因此,在克隆存储库后,只需在终端中写入

$ make build
$ make latest # or 'make lowest'
$ make test

变更日志

Release date Commits since latest release

变更日志可以在 此处找到

支持

Issues Issues

如果您发现任何包错误,请在当前存储库中 创建问题

许可证

这是一个开源软件,受 MIT 许可证 许可。