An open API service indexing awesome lists of open source software.

https://github.com/chipslays/cdek-api

πŸ“¦ ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API CDEK.
https://github.com/chipslays/cdek-api

cdek cdek-api php

Last synced: 11 days ago
JSON representation

πŸ“¦ ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API CDEK.

Awesome Lists containing this project

README

          

# PHP CDEK API v2

πŸ“¦ ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с [API CDEK](https://api-docs.cdek.ru).

## ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Данная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π΅ прСдоставляСт описаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² API, это простой HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π°) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ запроса ΠΊ API.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ всСгда ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ [Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΎΡ‚ Π‘Π”Π•Πš](https://api-docs.cdek.ru) для свСрки с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

## Установка

```bash
composer require cdek-php/api
```

## ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ [examples](examples).

## ДокумСнтация

### Авторизация

#### ВСстовая срСда

```php
use Cdek\Client;

$client = new Client('EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI', 'PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG');
```

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ тСстовой Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этом [ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅](examples/auth.php).

#### БоСвая срСда

```php
use Cdek\Client;
use Cdek\Enums\Endpoint;

$client = new Client('client-id', 'client-secret', Endpoint::PROD);
```

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ [тСстовая срСда](https://api-docs.cdek.ru/29923918.html), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² [Π±ΠΎΠ΅Π²ΠΎΠΉ срСдС](https://api-docs.cdek.ru/29923918.html), Π½Π΅ΠΎΠ±Ρ…ΠΎΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `endpoint` со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ `Cdek\Enums\Endpoint::PROD`.

#### Авторизация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ `$_ENV`

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ авторизация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ `$_ENV`, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ конструктора `client_id`, `client_secret` ΠΈ `endpoint` Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² .env Ρ„Π°ΠΉΠ»Π΅ прилоТСния.

```bash
# .env
CDEK_API_CLIENT_ID=EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI
CDEK_API_CLIENT_SECRET=PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG
CDEK_API_ENDPOINT=dev # dev - тСстовая срСда, prod - боСвая срСда
```

```php
// cdek.php

use Cdek\Client;

$client = new Client; // Π±Π΅Π· client_id, client_secret ΠΈ endpoint
```

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этом [ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅](examples/auth-env.php).

### Π’ΠΎΠΊΠ΅Π½

Π’ΠΎΠΊΠ΅Π½ гСнСрируСтся ΠΏΡ€ΠΈ любом запросС ΠΊ API (ΠΎΠ½ΠΈ описаны Π½ΠΈΠΆΠ΅), послС Ρ‡Π΅Π³ΠΎ ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π½Π° [ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ срок](https://api-docs.cdek.ru/29923918.html).

### `getToken(): string`

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊΠ΅Π½.

```php
$token = $client->getToken();
```

### Запросы ΠΊ API

#### `api(string $method, string $endpoint, array $parameters = []): Collection`

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ([см. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ](https://laravel.com/docs/10.x/collections)).

```php
# https://api-docs.cdek.ru/36982648.html
$client->api('get', 'deliverypoints', [
'size' => 10,
]);
```

#### `get(string $endpoint, array $parameters = []): Collection`

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ GET-запрос ΠΊ API.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ([см. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ](https://laravel.com/docs/10.x/collections)).

```php
# https://api-docs.cdek.ru/36982648.html
$client->get('deliverypoints', [
'size' => 10,
]);
```

#### `post(string $endpoint, array $parameters = []): Collection`

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ POST-запрос ΠΊ API.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ([см. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ](https://laravel.com/docs/10.x/collections)).

```php
$client->post(..., [...]);
```

#### `patch(string $endpoint, array $parameters = []): Collection`

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ PATCH-запрос ΠΊ API.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ([см. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ](https://laravel.com/docs/10.x/collections)).

```php
$client->patch(..., [...]);
```

#### `delete(string $endpoint, array $parameters = []): Collection`

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ DELETE-запрос ΠΊ API.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ([см. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ](https://laravel.com/docs/10.x/collections)).

```php
$client->delete(..., [...]);
```

## ЛицСнзия

[MIT](https://opensource.org/licenses/MIT).