daaner/novaposhta

适用于 Laravel 7+ 的 NovaPoshta (API 2.0)

1.4 2024-06-14 11:06 UTC

This package is auto-updated.

Last update: 2024-09-04 08:24:46 UTC


README

Scrutinizer Code Quality Laravel Support PHP Support Official Site

Latest Stable Version Total Downloads License

使用 Laravel 7 及以上版本管理 NovaPoshta 发送(novaposhta.ua)。

通过服务 NovaPoshta.ua 发送和检查运输单据的便捷包

注意

// Не доделал и не оттестил все модели
// используйте ветку `dev-master`
// В ней все самое последнее. Документацию стараюсь не затягивать

Laravel > 7, PHP >= 7.2.5

最低版本 Laravel 7.0,较低版本请使用 guzzle/guzzle

在 Laravel 10 和 PHP 8.3 上运行(Laravel 11 尚未测试,但应该可以)

安装

通过 composer 安装包。

composer require daaner/novaposhta

如果您不使用 autodiscover,请将服务提供者在 config/app.php 配置文件中添加。

Daaner\NovaPoshta\NovaPoshtaServiceProvider::class,

config/app.php 中添加 NovaPoshta 门面到数组

'NovaPoshta' => Daaner\NovaPoshta\Facades\NovaPoshta::class,

使用命令执行配置和本地化文件的发布

php artisan vendor:publish --provider="Daaner\NovaPoshta\NovaPoshtaServiceProvider"

配置

发布资源后,修改 config/novaposhta.php 文件并使用新的字段填写 .env

  • novaposhta.ua 网站上创建账户
  • 将安全设置中的 API 键 复制到 config/novaposhta.php 或 .env 文件中的相应参数
  • point 仅支持 json(不太可能添加 xml
  • dev 模式调试请求。将每个请求的 NovaPoshta API 记录到日志中(不要在生产环境中保留)并在响应数组中包含带有 dev 键的数据,不进行转换,如 NovaPoshta 返回的那样
  • 阅读文档并使用

使用和 API

  • setAPI($apiKey) - 设置不同的 API 密钥
$cp = new Counterparty;
$cp->setAPI('391e241b2c********************e7');
  • getResponse($model, $calledMethod, $methodProperties, $auth = true) - 自定义发送数据,如果添加新的方法
use NovaPoshta;
$model = 'TrackingDocument'; //нужная модель
$calledMethod = 'getStatusDocuments'; //нужный метод
$methodProperties = [
  //данные по документации
];
$np = new NovaPoshta;
$data = $np->getResponse($model, $calledMethod, $methodProperties, $auth = true);

dd($data);

支持的模型/方法

助手(在模型的文档中可以找到更详细的助手)

助手在主要方法调用之前被调用

$foo = new Common;
$list = $foo->getPaymentForms();

$bar = new Address;
$bar->setLimit(5)->setPage(2);
$cities = $bar->getCities();

dd($cities);

许多模型在响应中有俄语重复。在一些目录中没有俄语本地化。

  • setLimit(100) - 请求记录的限制
  • setPage(3) - 当有限制时进行分页

官方未记录的功能

  • 获取优惠卡数据
  • 更新登记描述
  • 登记清单简表
  • 根据电话号码获取合同方数据
  • 获取连接到系统的支付卡数据
  • 获取可用的 API 密钥列表
  • 续签 API 密钥
  • 获取受信任设备列表
  • 删除受信任设备
  • 获取传入包裹数据
  • 获取附加到合同方电话的促销代码列表
  • 合同方奖金计划数据列表
  • 可订购物资列表
  • 已订购物资列表
  • 获取订单汽车订单列表
  • 创建 API 密钥
  • 删除 API 密钥
  • 替换/取消预付货款

封装 NovaPoshta API 的状态

NovaPoshta API 官方文档 包文档

API 地址

地址操作

  • 在居民点目录中进行在线搜索
  • 在居民点目录中进行在线街道搜索
  • 创建合同方地址(发货人/收件人)
  • 编辑合同方地址(发货人/收件人)
  • 删除合同方地址(发货人/收件人)
  • 公司城市目录
  • 乌克兰居民点目录
  • 乌克兰地理区域指南
  • 部门和部门类型指南
  • 公司街道指南
  • 创建合同方地址(发货人/收件人)
  • 编辑合同方地址(发货人/收件人)
  • 删除合同方地址(发货人/收件人)

API 合作者

处理合作者数据

  • 创建合作者
  • 创建合作者联系人
  • 以(法人)组织类型创建合作者
  • 以第三方类型创建合作者
  • 加载合作者地址列表
  • 加载合作者参数
  • 加载合作者联系人列表
  • 加载合作者列表
  • 更新合作者数据
  • 更新合作者联系人数据
  • 删除收件人合作者
  • 删除合作者联系人

API 打印表单

这是获取打印表单方法的集合。

  • 标记 - 打印表单
  • 登记册 - 打印表单
  • 快递单据 - 打印表单

API 登记册

处理快递单据登记册

  • 将快递单据添加到登记册
  • 加载单个登记册的信息
  • 加载登记册列表
  • 更新登记描述
  • 登记清单简表
  • 删除(解构)发送登记册
  • 从登记册中删除快递单据

API 指南

处理指南。

  • 时间间隔类型
  • 货物类型
  • 货物逆向运输类型
  • 托盘类型
  • 付款方类型
  • 逆向运输付款方类型
  • 包装类型
  • 轮胎和轮毂类型
  • 货物描述
  • 错误列表
  • 配送技术
  • 合作者类型
  • 付款方式
  • 所有权形式

API 返送服务

客户可以使用 API 自行办理“返送服务”。此服务仅适用于发送方客户。

  • 检查创建返送申请的可能性
  • 获取返送原因列表
  • 获取返送原因子类型列表
  • 创建返送申请
  • 获取返送申请列表
  • 删除返送申请

API 数据更改服务

客户可以使用 API 自行办理“数据更改”服务。

  • 检查创建数据更改申请的可能性
  • 创建数据更改申请(部分)
  • 删除申请
  • 获取申请列表

API 重定向服务

客户可以使用 API 自行办理“重定向”服务。此服务适用于发送方和接收方客户。

  • 检查创建重定向申请的可能性
  • 创建重定向申请(部门/地址)
  • 删除申请
  • 获取申请列表

API 快递单据

处理快递单据

  • 计算服务费用
  • 预测货物交付日期
  • 创建快递单据
  • 按地址创建快递单据
  • 按部门创建快递单据
  • 按“诺瓦波什塔”邮政信箱创建快递单据
  • 创建带逆向运输的快递单据
  • 编辑快递单据(未测试)
  • 获取完整快递单据信息
  • 获取快递单据列表
  • 删除快递单据
  • 生成获取完整快递单据报告的请求
  • 生成创建带额外服务的快递单据的请求
  • 生成创建带不同类型货物的快递单据的请求

跳过的功能(没有看到需求或无法测试)

  • 以法人或第三方类型创建合作者
    • 未添加 CityRef 指定功能

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

始终欢迎支持、错误指示和PR!

有关详细信息,请参阅贡献指南

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件