Require this package with composer using the following command:
$ composer require avtocod/b2b-api-php "^4.0"
Installed
composer
is required (how to install composer).
You need to fix the major version of package.
Before using this package you must have:
- Service user login
- User password
- User domain name
- Report type name
For getting this values contact with our B2B Sale Managers (
b2b@avtocod.ru
)
Now, let's create B2B API Client instance:
<?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')));
And then we can make next operations (each call will returns an object with server response data):
<?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'));
For example, if you want to generate report for A111AA177
(GRZ
type), you can:
<?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
For package testing we use phpunit
framework and docker-ce
+ docker-compose
as develop environment. So, just write into your terminal after repository cloning:
$ make build
$ make latest # or 'make lowest'
$ make test
Changes log can be found here.
If you will find any package errors, please, make an issue in current repository.
This is open-sourced software licensed under the MIT License.