Поиск города и выбор отделений Новой Почты по API

Регистрируемся на сайте Новой Почты и делаем запрос на получения ключа для работы с API. Для поиска города передаем в searchCity поисковую фразу, для получение отделений найденного города передаем в getOfficesCity значение ref которое берем с данных найденного города.
logo
logo
PHP
<?

class Delivery {

    public static  $url = "https://api.novaposhta.ua/v2.0/json/";
    public static  $key = "xxxxxxxx";


    //Поиск города
    public static function searchCity($city)
    {
        if(empty($city))
            return false;

       $request = [
            "modelName"        => "Address",
            "calledMethod"     => "getCities",
            "apiKey"           => self::$key,
            "methodProperties" => [
                "FindByString" => $city,
            ]
        ];

        $json = json_encode($request);

        $ch = curl_init(self::$url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);

        $list = json_decode($result, true);

        foreach($list['data'] as $item)
        {
        ?>
            <span class="found-city" data-ref="<?=$item['Ref']?>"><?=$item['DescriptionRu']?> (<?=$item['AreaDescriptionRu']?> обл.)</span>
        <?
        }
    }


    //Выбор отделений города
    public static function getOfficesCity($ref)
    {
        if(empty($ref))
            return false;

        $request = [
            "modelName"        => "AddressGeneral",
            "calledMethod"     => "getWarehouses",
            "apiKey"           => self::$key,
            "methodProperties" => [
                "CityRef" => $ref
            ]
        ];


        $json = json_encode($request);

        $ch = curl_init(self::$url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);

        $list = json_decode($result, true);

        foreach($list['data'] as $item)
        {
        ?>
            <span class="found-address"><?=$item['DescriptionRu']?></span>
        <?
        }
    }

}

Спасибо! Заявка успешно отправлена, мы с Вами свяжемся в ближайшее время!