Download the PHP package antistress-store/cdek-sdk-v2 without Composer

On this page you can find all versions of the php package antistress-store/cdek-sdk-v2. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?
antistress-store/cdek-sdk-v2
Rate from 1 - 5
Rated 5.00 based on 1 reviews

Informations about the package cdek-sdk-v2

antistress-store/cdek-sdk-v2

SDK для интеграции с API 2.0 CDEK от Antistress.Store®

Перед вами полное SDK для API v2.0 для интеграции со службой доставки СДЭК.

Вопросы по интеграции вашим php \ Laravel вебсайтом, crm написать руководителю.

Список возможностей и содержание SDK:

В разработке:

Перечень доступных методов класса CdekClientV2

Задача Метод Аргументы Ответ
Cохранение токена setMemory memory, fu CdekClientV2
Получение списка ПВЗ getDeliveryPoints filter DeliveryPointsResponse[]
Получение списка регионов getRegions filter RegionsResponse[]
Получение списка городов getCities filter CitiesResponse[]
Расчёт стоимости тарифа calculateTariff tariff TariffResponse
Расчёт стоимости списка тарифов calculateTariffList tariff TariffListResponse[]
Регистрация заказа createOrder order EntityResponse
Удаление заказа deleteOrder uuid false
Отмена заказа deleteOrder uuid EntityResponse
Изменение заказа updateOrder order EntityResponse
Информация о заказе по трек-номеру getOrderInfoByCdekNumber cdek_number OrderResponse
Информация о заказе по ID заказа ИМ getOrderInfoByImNumber im_number OrderResponse
Информация о заказе по uuid getOrderInfoByUuid uuid OrderResponse
Формирование ШК-места к заказу setBarcode barcode EntityResponse
Получение сущности накладной к заказу getBarcode uuid PrintResponse
Печать pdf файла ШК-места к заказу getBarcodePdf uuid StreamInterface
Формирование квитанции к заказу setInvoice invoice EntityResponse
Получение сущности накладной к заказу getInvoice uuid PrintResponse
Печать pdf файла накладной(квитанции) к заказу getInvoicePdf uuid StreamInterface
Регистрация договоренности о доставке createAgreement agreement EntityResponse
Получение договоренности о доставке getAgreement uuid AgreementResponse
Регистрация заявки на вызов курьера createIntakes intakes EntityResponse
Получение информации о заявке на вызов курьера getIntakes uuid IntakesResponse
Удаление заявки на вызов курьера deleteIntakes uuid false
Получение информации о наложенных платежах getPayments date PaymentResponse
Получение информации о чеках getChecks check CheckResponse
Подписка на вебхуки (Webhooks) setWebhooks webhooks EntityResponse

История

Требования

Автор старался сделать наиболее функциональный и универсальный SDK. Необходимы: PHP 7.2 и выше, расширение "ext-json", и клиент Guzzlehttp. Тесты проводились на guzzlehttp 7.3.


Установка

Установка осуществляется с помощью менеджера пакетов Composer


Документация

Пригодится справочная информация по Протоколу обмену данными (v2.0)


Руководство к действию

Авторизация

Для интеграции с ИС СДЭК по протоколу обмена данными (v2.0) необходимо:

Заключить договор со СДЭК. Получить логин и пароль для доступа к API или создать ключ для доступа к боевой учетной записи. Для этого нужно в личном кабинете в разделе "Интеграция" нажать кнопку "Создать ключ", затем в этом разделе появится идентификатор аккаунта и пароль.

Данный программный комплекс поддерживает как тестовую, так и боевую (полнофункциональную) среду.

Для того, чтобы воспользоваться Тестовой средой, нужно в первом аргументе передать 'TEST'. Все необходимые настройки SDK загрузит автоматически.

Полнофункциональная "боевая" авторизация осуществляется с использованием логина и пароля для api. Опционально можно устанавливать таймаут соединения 3 аргументом $timeout (по умолчанию 5.0), как на тестовом, так и на боевом аккаунте.

После успешной авторизации сервер выдает токен, срок действия токена по умолчанию 3600 секунд. Сохранять не обязательно, вы можете авторизироваться каждый раз заново. Сохранив в сессии или в файле этот токен, вы избавите себя от повторной авторизации на указанный срок.

Cохранение токена

В этом вам поможет сеттер setMemory класса клиента. Аргументами сеттера являются - массив данных, в котором должен быть ключ 'cdekAuth' и ваша функция колл бэк. Ваша функция колл бэк должна принимать массив, передавать его на сохранение в нужное место. Пример реализации для Laravel

Передаваемый вами массив должен иметь вид:

Готовый массив и функцию колл бэк передаем в сеттер:

Все проверки на время действия токэна, который вы передали в массиве, на соответствие его используемой в данный момент среде (тестовой или боевой) проходят "под капотом". Вам не нужно об этом беспокоиться. Например, если вы пользовались тестовой средой и после решили перейти на боевую, SDK автоматически авторизуется заново и сохранит новый токен.

Информация о доступных геттерах и сеттерах SDK

Каждый метод геттер и сеттер соответствует одноименному свойству ответа сервера СДЭК в camel case (Верблюжий регистре). Если свойство сложное, например, Seller, Location, то у него как правило есть объект ответа sdk SellerResponse, Location и т.п. Соответственно обратившись к этому свойству через геттер вы получите объект данного класса. Список c названиями получаемых параметров можно посмотреть здесь

Расчёт стоимости доступных тарифов

Большинство сеттеров сущностей sdk возвращают $this, поэтому вы можете использовать их последовательно, один за другим.

$tariffList это массив TariffListResponse[] со списком тарифов, которые являются объектами класса TariffListResponse. Пример получения данных со всеми доступными методами:

Расчёт стоимости тарифа

Разница с предыдущим методом состоит лишь в том, что объекту тариф нужно задать конкретный код тарифа для расчета. Этот параметр обязателен, без него sdk вернет ошибку.

Ответ объект класса TariffResponse

Список методов для получения ответа сущности класса TariffResponse

Расчет стоимости тарифа + Страховка

Получение списка ПВЗ

Устанавливаем нужные параметры. Отдаем объект в метод клиента. Метод при успешном запросе возвращает объект класса DeliveryPointsResponse, ниже представлен пример со всеми доступными методами.

Список методов для установки сущности класса DeliveryPoints

Поддерживается установка следующих параметров запроса:

Получение списка регионов

Поддерживается установка следующих параметров запроса:

Пример запроса:

Ответом будет массив RegionsResponse[], итерируясь по которому можно запрашивать нужные вам параметры от экземпляра объекта RegionsResponse. Список получаемых параметров можно посмотреть здесь. Для каждого из них, есть геттер, например, чтобы получить kladr_region_code - воспользуйтесь методом ->getKladrRegionCode.

Получение списка городов

Поддерживается установка следующих параметров запроса:

Пример запроса:

Ответом будет массив CitiesResponse[], итерируясь по которому можно запрашивать нужные вам параметры от экземпляра объекта CitiesResponse. Список получаемых параметров можно посмотреть здесь. Для каждого из них, есть геттер, например, чтобы получить kladr_region_code - воспользуйтесь методом ->getKladrRegionCode.

При использовании тестового аккаунта возможны ошибочные ответы\пустые от сервера СДЭК по независящим от SDK причинам. На боевом аккаунте (с вашими паролем и логином такого быть не должно)

Регистрация заказа

Пример установки заказа, с описанием:

Исправлено в версии 1.2.3, следующие функции принимают mixed для обратной совместимости

Можно передавать как раньше один экземпляр класса Package или Services в этом случае добавитcя единичная упаковка или сервис, можно передавать целым массивом, тогда массив элементов добавиться к существующим. Важно помнить, что массив должен содержать подготовленные классы Package [Package,Package,...] или Services [Services,Services,...], пример для $packages:

Для добавления сервисов есть более удобная экспресс функция ->addServices(['INSURANCE' => 1000]) в которую передается массив ключ - значение, а функция сама подготовит правильный класс.

Ответом будет сущность класса AntistressStore\CdekSDK2\Entity\Responses\EntityResponse Получить uuid созданного заказа нужно методом:

Информация о заказе по id заказа в ИМ

Информация о заказе по cdek_number (номеру накладной)

Информация о заказе по uuid

Ответом будет сущность класса AntistressStore\CdekSDK2\Entity\Responses\OrderResponse
все необходимые данные можно получить используя методы геттеры этой сущности

Список методов для получения ответа сущности класса OrderResponse

Список методов для установки сущности класса Order

Печать квитанции

Существует два способа получить квитанцию к заказу. Первый. Если (как в примере выше) вы запросили ее вместе с созданием заказа. Используя ->setPrint('waybill'). В этом случае информация о заказе будет содержать свойство related_entities - связанные с заказом сущности.

Это массив, содержаший такие параметры как:

  • return_order - возвратный заказ (возвращается для прямого, если заказ не вручен и по нему уже был сформирован возвратный заказ)
  • direct_order - прямой заказ (возвращается для возвратного и реверсного заказа)
  • waybill - квитанция к заказу (возвращается для заказа, по которому есть сформированная квитанция)
  • barcode - ШК места к заказу (возвращается для заказа, по которому есть сформированный ШК места)
  • reverse_order - реверсный заказ (возвращается для прямого заказа, если подключен реверс)
  • delivery - актуальная договоренность о доставке

Если ни одна из этих сущностей не привязана к заказу (не запрашивалась квитанция, заказ не возвратный и т.д.) массив будет пустой.

Получить данные о связанных с заказом сущностей можно:

Получить данные о самой новой, последней созданной накладной к заказу можно используя удобный экспресс-метод:

Аргументом функции является строка с названием типа сущности (см. выше). Поскольку мы передали 'waybill' getLastRelated метод получает uuid квитанции, который нужно направить в метод getInvoicePdf. Получить pdf файл с квитанцией можно:

Второй способ. Это направить запрос на создание квитанции и получить ее uuid отдельным методом:

ВАЖНО! Файл квитанции не всегда будет готов сразу. Как правило необходимо некоторое время для подготовки квитанции. Если направить запрос на получение квитанции сразу после ее создания вы можете получить ошибку или пустой ответ.

Список методов для установки сущности класса Invoice

Список методов для получения данных сущности класса PrintResponse

Удаление заказа

Заказы удаляются только по наличию ранее полученного uuid

Если все "ок" метод вернет false. Если какие-то сложности - возвратит ошибку.

Отмена заказа

Заказы отменяются только до получения статуса "Вручен" или "Не вручен", и только по наличию ранее полученного uuid

Регистрация договоренностей о доставке

Кроме представленных в примере доступно также: ->setUuid() для установки uuid заказа

Ответом будет сущность класса AntistressStore\CdekSDK2\Entity\Responses\EntityResponse Получить uuid созданной договоренности нужно методом:

Получение информации договоренности о доставке

Список методов для получения данных сущности класса AgreementResponse

Регистрация заявки на вызов курьера

Получение заявки на вызов курьера

Удаление заявки на вызов курьера

Получение информации о переводе наложенного платежа

Получение информации о чеках

Подписка на вебхуки (Webhooks)

'ORDER_STATUS' - событие по статусам 'PRINT_FORM' - готовность печатной формы

Известные проблемы

  • При использовании тестового сервера может приходить ошибка определения города получателя или отправителя. В данном случае ошибка возникает из-за отсутствия ПВЗ с кодом на тестовой среде. Данные на тестовой и боевой среде могут отличаться, так как тестовая среда обновляется гораздо реже боевой. В связи с этим для корректного тестирования информацию по населенным пунктам и ПВЗ необходимо запрашивать и использовать в рамках одной среды.
  • На тестовом сервере иногда приходят внутренние ошибки Internal Error не связанные с правильностью работы sdk.
  • Если запрос на тестовый сервер выполнился с ошибкой, но заказ при этом создался, может произойти ситуация дублирования (неуникальности) uuid или некорректно сформированного заказа, как правило, удалить такой заказ не представляется возможным.

Лицензия

Автор antistress-store/cdek-sdk-v2 Сергей Гусев. Данный проект распространяется под лицензией MIT.


All versions of cdek-sdk-v2 with dependencies

PHP Build Version
Package Version
Requires php Version >=7.2.5
ext-json Version *
guzzlehttp/guzzle Version >=7.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package antistress-store/cdek-sdk-v2 contains the following files

Loading the files please wait ....