manzor29 / avtocod-b2b-api-php
PHP package for a working with B2B API service
Requires
- php: ^7.1.3
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^6.0
- ocramius/package-versions: ^1.2
Requires (Dev)
- fzaninotto/faker: ^1.9.1
- mockery/mockery: ^1.3
- phpstan/phpstan: ^0.12.1
- phpunit/phpunit: ^7.5
- symfony/var-dumper: ^4.2
- tarampampam/guzzle-url-mock: ^1.1
- vlucas/phpdotenv: ^3.4
Suggests
- avtocod/specs: Avtocod project public specifications.
README
PHP client for B2B API service
Install
Require this package with composer using the following command:
$ composer require avtocod/b2b-api-php "^3.2"
Installed
composer
is required (how to install composer).
You need to fix the major version of package.
Usage
Before using this package you must have:
- Service user login
- User password
- User domain name
- And 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(); // Debug token generation $client->devToken('username', 'password'); // Retrieve information about current user $client->user(true); // Retrieve balance information for report type $client->userBalance('report_type_uid@domain'); // Retrieve report types data $client->userReportTypes(); // Get reports list $client->userReports(); // Get report by unique report ID $client->userReport('report_uid_SOMEIDENTIFIERGOESHERE@domain'); // Make (generate) report $client->userReportMake('report_type_uid@domain', 'VIN', 'Z94CB41AAGR323020'); // Refresh existing report $client->userReportRefresh('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($this->report_type, 'GRZ', 'A111AA177', null, true) ->first() ->getReportUid(); // Wait for report is ready while (true) { if ($client->userReport($report_uid, false)->first()->isCompleted()) { break; } \sleep(1); } $content = $client->userReport($report_uid)->first()->getContent(); $vin_code = $content->getByPath('identifiers.vehicle.vin'); // (string) 'JTMHX05J704083922' $engine_kw = $content->getByPath('tech_data.engine.power.kw'); // (int) 227
Testing
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
Changes log can be found here.
Support
If you will find any package errors, please, make an issue in current repository.
License
This is open-sourced software licensed under the MIT License.