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.
- Host: GitHub
- URL: https://github.com/chipslays/cdek-api
- Owner: chipslays
- License: mit
- Created: 2024-03-14T10:26:01.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-18T03:59:27.000Z (about 2 years ago)
- Last Synced: 2025-01-03T04:52:26.660Z (over 1 year ago)
- Topics: cdek, cdek-api, php
- Language: PHP
- Homepage: https://api-docs.cdek.ru
- Size: 12.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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).