<?php /** * Работа с OpenAPI * ВНИМАНИЕ! Скрипт будет использовать файл, который создаётся в initApi/init.php */ require '../header.php'; require '../lib.inc.php'; // Файл с функцией, генерирующей secret_key require 'sign.php'; // Название метода, к которому производится обращение $method = 'getCities'; // Константа OPEN_API_URL определяется в lib.inc.php $openApiUrl = OPEN_API_URL . $method; try { // Читаем конфигурацию, сохранённую во время выполнения скрипта initApi/init.php // http://docs.multishipinitapiv1.apiary.io/ $jsonConfig = readConfig(); $postData = array('client_id' => $jsonConfig->config->clientId); // Генерируем secret_key $secretKey = sign($jsonConfig->config->methodKeys->{$method}, $postData); // Добавляем полученный secret_key к массиву, который будет передан методом POST $postData['secret_key'] = $secretKey; $result = sendRequestViaCurl($openApiUrl, $postData); } catch (Exception $e) { echo '<p>Произошла неисправимая ошибка: ' . $e->getMessage() . '</p>'; } require '../footer.php';
<?php /** * Регистрация модуля на сервере MultiShip */ require '../header.php'; require '../lib.inc.php'; /** * В файле config.php находится массив идентичныйы $config, только перед ним стоит return */ $preInitApiConfig = (require 'config.php'); // URL для регистрации модуля на сервере MultiShip $initApiUrl = INIT_API_URL . 'init'; // Конфигурация POST-параметров, необходимых для метода InitAPI::init() $config = ['login' => $preInitApiConfig['login'], 'password' => $preInitApiConfig['password'], 'cmsName' => $preInitApiConfig['cmsName'], 'cmsVersion' => $preInitApiConfig['cmsVersion'], 'domain' => $preInitApiConfig['domain'], 'callbackUrl' => $preInitApiConfig['callbackUrl']]; // Отправляем запрос и получаем ответ $result = sendRequestViaCurl($initApiUrl, $config); // Вызываем обработчика ответа от CURL. // В качестве второго параметра передаём функцию, которая произведёт запись полученной конфигурации в файл config.json curlAnswerHandler($result, function () use($result) { file_put_contents('../config.json', $result['data']); }); require '../footer.php';