<?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';
require '../header.php'; require '../lib.inc.php'; // Файл с функцией, генерирующей secret_key require 'sign.php'; // Название метода, к которому производится обращение $method = 'confirmSenderOrders'; // Константа 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); //Читаем данные, полученные при создании заказа, чтобы "взять" order_id $jsonOrder = readConfig('createOrder.json'); $postData['order_id'] = $jsonOrder->data->order_id; //планируемая дата отгрузки заказов в UNIX формате $postData['date_shipment'] = 1402401322; // Генерируем secret_key $secretKey = sign($jsonConfig->config->methodKeys->{$method}, $postData); // Добавляем полученный secret_key к массиву, который будет передан методом POST $postData['secret_key'] = $secretKey; $result = sendRequestViaCurl($openApiUrl, $postData); //Формируем файл, чтобы потом получить номер парсела для распечатки сопроводительных документов curlAnswerHandler($result, function () use($result) { file_put_contents('parcel_id.json', $result['data']); }); } catch (Exception $e) { echo '<p>Произошла неисправимая ошибка: ' . $e->getMessage() . '</p>'; } require '../footer.php';
$postData['order_delivery_cost'] = $searchDeliveryListAnswer->data[0]->cost_with_rules; // Если у клиента в системе MultiShip несколько магазинов, то нужно указать правильный набор из // магазина/реквизитов/склада $postData['order_sender'] = $jsonConfig->config->senders[0]; $postData['order_requisite'] = $jsonConfig->config->requisites[0]; $postData['order_warehouse'] = $jsonConfig->config->warehouses[0]; // Предположено, что на сайте есть три разных поле. Если есть только одно, то recipient_last_name и // recipient_middle_name можно оставить пустыми, НО при этом нужно будет установить $postData['order_user_status_id'] // в значение "-2"! $postData['recipient_first_name'] = 'Иван'; // Получено от покупателя // direction_id из ответа OpenAPI::searchDeliveryList() у нужной СД $postData['delivery_direction'] = $searchDeliveryListAnswer->data[0]->direction_id; // delivery_id из ответа OpenAPI::searchDeliveryList() у нужной СД $postData['delivery_delivery'] = $searchDeliveryListAnswer->data[0]->delivery_id; // Раз не были указаны все обязательные поля, то это черновик $postData['order_user_status_id'] = -2; // Генерируем secret_key $secretKey = sign($jsonConfig->config->methodKeys->{$method}, $postData); // Добавляем полученный secret_key к массиву, который будет передан методом POST $postData['secret_key'] = $secretKey; // Отправляем запрос на сервер через CURL $result = sendRequestViaCurl($openApiUrl, $postData); // Вызываем обработчика ответа от CURL curlAnswerHandler($result, function () use($result) { file_put_contents('createOrder.json', $result['data']); }); } catch (Exception $e) { echo '<p>Произошла неисправимая ошибка: ' . $e->getMessage() . '</p>'; } require '../footer.php';
require '../lib.inc.php'; // Файл с функцией, генерирующей secret_key require 'sign.php'; // Название метода, к которому производится обращение $method = 'getIndex'; // Константа OPEN_API_URL определяется в lib.inc.php $openApiUrl = OPEN_API_URL . $method; try { // Читаем конфигурацию, сохранённую во время выполнения скрипта initApi/init.php // http://docs.multishipinitapiv1.apiary.io/ $jsonConfig = readConfig(); // Список необходимых параметров для каждого метода можно посмотреть на странице http://docs.multiship.apiary.io/ $postData = array('client_id' => $jsonConfig->config->clientId); // Название города $postData['city'] = 'Волгоград'; // Название улицы ( ул. или улица, пл. или площадь и прочие указания на то, что это, обязательны ) $postData['street'] = 'ул. Циолковского'; // Номер ( число ) дома $postData['house'] = '37'; // Генерируем secret_key $secretKey = sign($jsonConfig->config->methodKeys->{$method}, $postData); // Добавляем полученный secret_key к массиву, который будет передан методом POST $postData['secret_key'] = $secretKey; // Отправляем запрос на сервер через CURL $result = sendRequestViaCurl($openApiUrl, $postData); // Вызываем обработчика ответа от CURL curlAnswerHandler($result); } catch (Exception $e) { echo '<p>Произошла неисправимая ошибка: ' . $e->getMessage() . '</p>'; } require '../footer.php';
// Список необходимых параметров для каждого метода можно посмотреть на странице http://docs.multiship.apiary.io/ $postData = array('client_id' => $jsonConfig->config->clientId); $postData['city_from'] = 'Москва'; $postData['city_to'] = 'Тверь'; // Суммарный вес заказа рассчитать не сложно, поэтому предположим, что он расчитан $postData['weight'] = '2.25'; // Предположим, что есть три товара со следующими габаритами $itemDimensions = [[12, 10, 14], [14, 23, 2], [5, 12, 17]]; // Рассчитываем общие габариты заказа $orderDimensions = dimensionAlgorithm($itemDimensions); $postData['height'] = $orderDimensions['A']; $postData['width'] = $orderDimensions['B']; $postData['length'] = $orderDimensions['C']; // Предположим, что нужно получить все СД, которые готовы доставить заказ прямо к заказчику $postData['delivery_type'] = 'todoor'; // Лучше укащать, чтобы были дополнительные данные по страховке и кассовому сбору $postData['total_cost'] = 3280; // Генерируем secret_key $secretKey = sign($jsonConfig->config->methodKeys->{$method}, $postData); // Добавляем полученный secret_key к массиву, который будет передан методом POST $postData['secret_key'] = $secretKey; // Отправляем запрос на сервер через CURL $result = sendRequestViaCurl($openApiUrl, $postData); // Вызываем обработчика ответа от CURL curlAnswerHandler($result, function () use($result) { file_put_contents('searchDeliveryList.json', $result['data']); }); } catch (Exception $e) { echo '<p>Произошла неисправимая ошибка: ' . $e->getMessage() . '</p>'; } require '../footer.php';