dicr/yii2-cdek API слуТбы доставки Π‘Π”Π­Πš

API слуТбы доставки Π‘Π”Π­Πš для Yii2 ΒΆ

  1. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ
  2. Запросы ΠΊ API

РСализация JSON-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π‘Π”Π­Πš вСрсии 1.5

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ число ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ сСрвСру Π‘Π”Π­Πš, запросы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ настроСны Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ CdekApi ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСт CachingClient ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° dicr/yii2-http.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΒΆ

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ CdekApi настраиваСтся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ прилоТСния.

return [
    'components' => [
        'cdek' => [
            'class' => dicr\cdek\CdekApi::class,
            // для тСстирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ тСстовыС url, Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ
            'baseUrl' => dicr\cdek\CdekApi::URL_INTEGRATION_TEST,
            'login' => dicr\cdek\CdekApi::LOGIN_TEST,
            'password' => dicr\cdek\CdekApi::PASSWORD_TEST,
            // ΠΊΠΎΠ½Ρ„ΠΈΠ³ запроса стоимости доставки ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
            'calcRequestConfig' => [
                // Π³ΠΎΡ€ΠΎΠ΄ отправитСля Ρƒ нас всСгда ΠΎΠ΄ΠΈΠ½, поэтому ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
                'senderCityPostCode' => 614087, // ΠŸΠ΅Ρ€ΠΌΡŒ
                // здСсь список Ρ‚Π°Ρ€ΠΈΡ„ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ для доставки (ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π² tariffId)
                'tariffList' => [
                    ['id' => dicr\cdek\CdekApi::TARIF_POST_S_S],
                    ['id' => dicr\cdek\CdekApi::TARIF_POST_S_D],
                    ['id' => dicr\cdek\CdekApi::TARIF_ECOPOST_S_D],
                    ['id' => dicr\cdek\CdekApi::TARIF_ECOPOST_S_S]
                ],
            ]   
       ]
    ]
];

Запросы ΠΊ API ΒΆ

/** @var dicr\cdek\CdekApi $api */
$api = Yii::$app->get('cdek');

// запрос списка Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΠ²
$regions = $api->regionRequest()->send();

// запрос списка Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ²
$cities = $api->cityRequest([
    'countryCode' => 'ru'
])->send();

// запрос списка ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² самовывоза
$pvz = $api->cityRequest([
    'citypostcode' => 614087
])->send();

// расчСт стоимости доставки (Π³ΠΎΡ€ΠΎΠ΄ отправитСля ΠΈ список Ρ‚Π°Ρ€ΠΈΡ„ΠΎΠ² Π·Π°Π΄Π°Π½Ρ‹ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°)
$result = $api->calcRequest([
    // Π³ΠΎΡ€ΠΎΠ΄ получатСля ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ Π‘Π”Π­Πš, Π»ΠΈΠ±ΠΎ индСкс Π² `receiverCityPostCode`
    'receiverCityId' => 44, // Москва,
     // ΠΈΠ· списка настроСнных Ρ‚Π°Ρ€ΠΈΡ„ΠΎΠ² Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚Π°Ρ€ΠΈΡ„Ρ‹ с доставкой ΠΎΡ‚ склада Π΄ΠΎ Π΄Π²Π΅Ρ€ΠΈ
    'modeId' => dicr\cdek\CdekApi::DELIVERY_SKLAD_DOOR, 
    // характСристики посылок (Ρƒ нас всСго ΠΎΠ΄Π½Π°) 
    'goods' => [
        ['weight' => 0.24, 'volume' => 0.001]
    ]
])->send();

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки ΠΈ запросов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² тСстах phpunits (ΠΏΠ°ΠΏΠΊΠ° tests).

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ докумСнтация ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ запроса - Π² Π±Π°Π·Π΅ Π·Π½Π°Π½ΠΈΠΉ Π‘Π”Π­Πš.

0 0
2 followers
27 downloads
Yii Version: 2.0
License: Apache-2.0
Category: Networking
Developed by: Igor Tarasov Igor Tarasov
Created on: Nov 19, 2020
Last updated: (not set)
Packagist Profile
Code Repository

Related Extensions