π¦ ΠΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ API CDEK.
ΠΠ°Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² API, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ (ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°) ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ API.
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΡ Π‘ΠΠΠ Π΄Π»Ρ ΡΠ²Π΅ΡΠΊΠΈ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ.
composer require cdek-php/api
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ examples.
use Cdek\Client;
$client = new Client('EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI', 'PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG');
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
use Cdek\Client;
use Cdek\Enums\Endpoint;
$client = new Client('client-id', 'client-secret', Endpoint::PROD);
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΎΠ²Π°Ρ ΡΡΠ΅Π΄Π°, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΡΠ΅Π΄Π΅, Π½Π΅ΠΎΠ±Ρ
ΠΎΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ endpoint
ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Cdek\Enums\Endpoint::PROD
.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ $_ENV
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° client_id
, client_secret
ΠΈ endpoint
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² .env ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
# .env
CDEK_API_CLIENT_ID=EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI
CDEK_API_CLIENT_SECRET=PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG
CDEK_API_ENDPOINT=dev # dev - ΡΠ΅ΡΡΠΎΠ²Π°Ρ ΡΡΠ΅Π΄Π°, prod - Π±ΠΎΠ΅Π²Π°Ρ ΡΡΠ΅Π΄Π°
// cdek.php
use Cdek\Client;
$client = new Client; // Π±Π΅Π· client_id, client_secret ΠΈ endpoint
ΠΡΠΈΠΌΠ΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Π’ΠΎΠΊΠ΅Π½ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ ΠΊ API (ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π½ΠΈΠΆΠ΅), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΎΡΠ²Π΅ΡΠ΅ ΡΡΠΎΠΊ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΎΠΊΠ΅Π½.
$token = $client->getToken();
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (ΡΠΌ. Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ).
# https://api-docs.cdek.ru/36982648.html
$client->api('get', 'deliverypoints', [
'size' => 10,
]);
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ GET-Π·Π°ΠΏΡΠΎΡ ΠΊ API.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (ΡΠΌ. Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ).
# https://api-docs.cdek.ru/36982648.html
$client->get('deliverypoints', [
'size' => 10,
]);
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ POST-Π·Π°ΠΏΡΠΎΡ ΠΊ API.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (ΡΠΌ. Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ).
$client->post(..., [...]);
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ PATCH-Π·Π°ΠΏΡΠΎΡ ΠΊ API.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (ΡΠΌ. Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ).
$client->patch(..., [...]);
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ DELETE-Π·Π°ΠΏΡΠΎΡ ΠΊ API.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (ΡΠΌ. Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Laravel ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ).
$client->delete(..., [...]);
MIT.