levgenij / nova-poshta-api-2
用于API 2.0的乌克兰快递公司"Nova Poshta"的PHP类
1.0.3
2017-07-17 14:39 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ~4.4
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密钥后,您可以使用类的所有方法,如官方文档中所述
安装最新版本的类以使用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 install
或php 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类型
- 获取逆向配送货物类型
- 获取货物描述列表
- 获取货物类型
- 获取文档状态
- 获取所有权形式列表
- 获取托盘列表
- 获取支付形式
- 获取时间段
- 获取服务类型
- 获取轮胎轮毂列表
- 获取托盘列表
- 获取付款人类型
- 获取红利付款人类型