API ÑлÑÐ¶Ð±Ñ Ð´Ð¾ÑÑавки СÐÐÐ Ð´Ð»Ñ Yii2 ¶
РеализаÑÐ¸Ñ 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
).
ÐеÑалÑÐ½Ð°Ñ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ Ð¿Ð¾ паÑамеÑÑам запÑоÑа - в базе знаний СÐÐÐ.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.