levgenij/nova-poshta-api-2

用于API 2.0的乌克兰快递公司"Nova Poshta"的PHP类

1.0.3 2017-07-17 14:39 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:43:20 UTC


README

该类提供对"Nova Poshta"配送服务API 2.0功能的访问

准备

获取API密钥

要使用API,需要

获取API密钥后,您可以使用类的所有方法,如官方文档中所述

安装最新版本的类以使用API

Git

需要在命令行中执行以下操作

git clone https://github.com/lis-dev/nova-poshta-api-2

Composer

需要创建一个包含以下内容的composer.json文件

{
    "require": {
        "lis-dev/nova-poshta-api-2": "dev-master"
    }
}

然后从命令行运行php composer.phar installphp composer.phar update,或者直接在命令行中执行

composer require lis-dev/nova-poshta-api-2:dev-master

替代安装

需要通过链接下载存档

https://github.com/lis-dev/nova-poshta-api-2/archive/master.zip

数据格式

入站数据使用PHP数组,服务器响应可以以以下格式获得

  • 作为PHP数组
  • JSON
  • XML

使用

创建类实例

$np = new NovaPoshtaApi2('Ваш_ключ_API_2.0');

创建类实例(带扩展参数)

如果需要以不同于俄语的语言获取数据,或者在请求错误或服务器上未安装curl库时抛出异常,则建议使用

$np = new NovaPoshtaApi2(
	'Ваш_ключ_API_2.0',
	'ru', // Язык возвращаемых данных: ru (default) | ua | en
	FALSE, // При ошибке в запросе выбрасывать Exception: FALSE (default) | TRUE
	'curl' // Используемый механизм запроса: curl (defalut) | file_get_content
);

获取跟踪号码信息

$result = $np->documentsTracking('59000000000000');

获取配送期限

// Получение кода города по названию города и области
$sender_city = $np->getCity('Белгород-Днестровский', 'Одесская');
$sender_city_ref = $sender_city['data'][0]['Ref'];
// Получение кода города по названию города и области
$recipient_city = $np->getCity('Киев', 'Киевская');
$recipient_city_ref = $recipient_city['data'][0]['Ref'];
// Дата отправки груза
$date = date('d.m.Y');
// Получение ориентировочной даты прибытия груза между складами в разных городах
$result = $np->getDocumentDeliveryDate($sender_city_ref, $recipient_city_ref, 'WarehouseWarehouse', $date);	

获取配送成本

// Получение кода города по названию города и области
$sender_city = $np->getCity('Белгород-Днестровский', 'Одесская');
$sender_city_ref = $sender_city['data'][0]['Ref'];
// Получение кода города по названию города и области
$recipient_city = $np->getCity('Киев', 'Киевская');
$recipient_city_ref = $recipient_city['data'][0]['Ref'];
// Вес товара
$weight = 7;
// Цена в грн
$price = 5450;
// Получение стоимости доставки груза с указанным весом и стоимостью между складами в разных городах 
$result = $np->getDocumentPrice($sender_city_ref, $recipient_city_ref, 'WarehouseWarehouse', $weight, $price);

生成新的电子运单

// Перед генерированием ЭН необходимо получить данные отправителя
// Получение всех отправителей
$senderInfo = $np->getCounterparties('Sender', 1, '', '');
// Выбор отправителя в конкретном городе (в данном случае - в первом попавшемся)
$sender = $senderInfo['data'][0];
// Информация о складе отправителя
$senderWarehouses = $np->getWarehouses($sender['City']);
// Генерирование новой накладной
$result = $np->newInternetDocument(
    // Данные отправителя
    array(
        // Данные пользователя
        'FirstName' => $sender['FirstName'],
        'MiddleName' => $sender['MiddleName'],
        'LastName' => $sender['LastName'],
        // Вместо FirstName, MiddleName, LastName можно ввести зарегистрированные ФИО отправителя или название фирмы для юрлиц
        // (можно получить, вызвав метод getCounterparties('Sender', 1, '', ''))
        // 'Description' => $sender['Description'],
        // Необязательное поле, в случае отсутствия будет использоваться из данных контакта
        // 'Phone' => '0631112233',
        // Город отправления
        // 'City' => 'Белгород-Днестровский',
        // Область отправления
        // 'Region' => 'Одесская',
        'CitySender' => $sender['City'],
        // Отделение отправления по ID (в данном случае - в первом попавшемся)
        'SenderAddress' => $senderWarehouses['data'][0]['Ref'],
        // Отделение отправления по адресу
        // 'Warehouse' => $senderWarehouses['data'][0]['DescriptionRu'],
    ),
    // Данные получателя
    array(
        'FirstName' => 'Сидор',
        'MiddleName' => 'Сидорович',
        'LastName' => 'Сиродов',
        'Phone' => '0509998877',
        'City' => 'Киев',
        'Region' => 'Киевская',
        'Warehouse' => 'Отделение №3: ул. Калачевская, 13 (Старая Дарница)',
    ),
    array(
        // Дата отправления
        'DateTime' => date('d.m.Y'),
        // Тип доставки, дополнительно - getServiceTypes()
        'ServiceType' => 'WarehouseWarehouse',
        // Тип оплаты, дополнительно - getPaymentForms()
        'PaymentMethod' => 'Cash',
        // Кто оплачивает за доставку
        'PayerType' => 'Recipient',
        // Стоимость груза в грн
        'Cost' => '500',
        // Кол-во мест
        'SeatsAmount' => '1',
        // Описание груза
        'Description' => 'Кастрюля',
        // Тип доставки, дополнительно - getCargoTypes
        'CargoType' => 'Cargo',
        // Вес груза
        'Weight' => '10',
        // Объем груза в куб.м.
        'VolumeGeneral' => '0.5',
        // Обратная доставка
        'BackwardDeliveryData' => array(
            array(
                // Кто оплачивает обратную доставку
                'PayerType' => 'Recipient',
                // Тип доставки
                'CargoType' => 'Money',
                // Значение обратной доставки
                'RedeliveryString' => 4552,
            )
        )
    )
);

获取特定城市的仓库

// В параметрах указывается город и область (для более точного поиска)
$city = $np->getCity('Киев', 'Киевская');
$result = $np->getWarehouses($city);

调用任意方法

$result = $np
	->model('Имя_модели')
	->method('Имя_метода')
	->params(array(
		'Имя_параметра_1' => 'Значение_параметра_1',
		'Имя_параметра_2' => 'Значение_параметра_2',
	))
	->execute();

用于处理模型实现的方法

InternetDocument模型

  • 保存
  • 更新
  • 删除
  • 获取文档价格
  • 获取文档配送日期
  • 获取文档列表
  • 获取文档
  • 打印文档
  • 打印标记
  • 文档跟踪
  • 创建新的InternetDocument
  • 生成报告

Counterparty模型

  • 保存
  • 更新
  • 删除
  • 克隆忠诚度发货方Counterparty
  • 获取Counterparties
  • 获取Counterparty地址
  • 获取Counterparty联系人
  • 通过EDRPOU获取Counterparty
  • 获取Counterparty选项

联系人模型

  • 保存
  • 更新
  • 删除

地址模型

  • 保存
  • 更新
  • 删除
  • 获取城市
  • 获取街道
  • 获取仓库
  • 获取区域
  • 查找最近的仓库

Common模型

  • 获取Counterparty类型
  • 获取逆向配送货物类型
  • 获取货物描述列表
  • 获取货物类型
  • 获取文档状态
  • 获取所有权形式列表
  • 获取托盘列表
  • 获取支付形式
  • 获取时间段
  • 获取服务类型
  • 获取轮胎轮毂列表
  • 获取托盘列表
  • 获取付款人类型
  • 获取红利付款人类型