serj1chen / nova-poshta-sdk-php
Novaposhta SDK
Requires
- php: >=5.3.0
- ext-curl: *
- ext-json: *
This package is auto-updated.
Last update: 2024-09-07 05:41:36 UTC
README
为了快速处理大量发货,使用公司“新邮”的信息系统与合作伙伴/客户软件综合系统之间的电子数据交换方式。数据交换通过 ARІ 程序环境进行。
要开始使用“新邮”公司的 ARІ 功能,需要在 my.novaposhta.ua 的个人账户设置页面创建密钥。ARІ 密钥必须包含在每个请求中。注意!所有创建的密钥都有时间限制,强烈建议考虑此限制。
SDK 是根据官方文档开发的。有关模型和方法的更详细信息,请访问个人账户 API 2 官方文档页面:[新邮](https://my.novaposhta.ua)。SDK 不是新邮的官方 SDK,我是为了个人目的开发的。
连接 SDK
方法 1(composer)
通过 composer 安装 SDK 是最简单的方法。
在项目根目录下创建 composer.json
文件
{
"require": {
"serj1chen/nova-poshta-sdk-php": "2.0.*"
}
}
安装 composer
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install
连接 composer 自动加载器
include_once "vendor/autoload.php";
方法 2(git)
克隆仓库
git clone git://github.com/serj1chen/nova-poshta-sdk-php
连接 SDK 自动加载器
include_once "nova-poshta-sdk-php/lib/NovaPoshta/bootstrap.php";
SDK 结构
配置文件设置(《Config》)
在开始使用 API 之前,需要设置配置文件
Use NovaPoshta\Config;
Config::setApiKey('<Ваш ключ>');
Config::setFormat(Config::FORMAT_JSONRPC2);
Config::setLanguage(Config::LANGUAGE_UA);
示例:[https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Config_example.php](https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Config_example.php)
数据传输可能格式(在 setFormat 方法中指定格式)
- FORMAT_JSON
- FORMAT_JSONRPC2(推荐)
- FORMAT_XML
SDK 模型的工作方式(《ApiModels》)
所有模型都位于 ApiModels 文件夹中。
模型
- Address:用于处理地址的模型。示例:[https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Address_example.php](https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Address_example.php)
- Common:用于处理目录的模型。示例:[https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Common_example.php](https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Common_example.php)
- ContactPerson:用于创建联系人的模型。示例:[https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/ContactPerson_example.php](https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/ContactPerson_example.php)
- Counterparty:用于处理合同方数据的模型。示例:[https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Counterparty_example.php](https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Counterparty_example.php)
- InternetDocument:用于处理发货的模型。示例:[https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/InternetDocument_example.php](https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/InternetDocument_example.php)
- ScanSheet:用于处理接收/发送记录的模型的示例:[https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/ScanSheet_example.php](https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/ScanSheet_example.php)
模型类中注释描述了所有方法。
模型方法的工作方式
模型方法的工作方式:save, update, delete。 填充模型所需的值并调用所需方法。示例
use NovaPoshta\ApiModels\Counterparty;
$counterparty = new Counterparty();
$counterparty->setCounterpartyProperty('Recipient');
$counterparty->setCityRef('db5c88d0-391c-11dd-90d9-001a92567626');
$counterparty->setCounterpartyType('PrivatePerson');
$counterparty->setFirstName('Пилипко');
$counterparty->setLastName('Вася');
$counterparty->setMiddleName('Сергеевич');
$counterparty->setPhone('+380661122333');
$counterparty->setEmail('test@i.ua');
$result = $counterparty->save();
静态方法的工作方式。 在方法中传递 MethodParameters 对象
use NovaPoshta\ApiModels\Counterparty;
use NovaPoshta\MethodParameters\MethodParameters;
$data = new MethodParameters();
$data->CounterpartyProperty = 'Recipient';
$data->Page = 1;
$data->CityRef = '8d5a980d-391c-11dd-90d9-001a92567626';
$data->FindByString = 'Петр';
$result = Counterparty::getCounterparties($data);
或者可以使用继承自类 MethodParameters 的类 MethodParameters。这些类有参数设置器,可以将参数传递给模型静态方法。带有参数的类名称由两部分组成,即模型名称(ApiModels)和模型静态方法名称。使用示例
use NovaPoshta\ApiModels\Counterparty;
use NovaPoshta\MethodParameters\MethodParameters;
use NovaPoshta\MethodParameters\Counterparty_getCounterparties;
$data = new Counterparty_getCounterparties();
$data->setCounterpartyProperty('Recipient');
$data->setPage(1);
$data->setCityRef('8d5a980d-391c-11dd-90d9-001a92567626');
$data->setFindByString('Петр');
$result = Counterparty::getCounterparties($data);
模型辅助类用于处理模型(《Models》)
这些类用于填充模型(《ApiModels》)
日志记录(《Logger》)
如果您需要记录发送/接收请求的数据,需要创建一个继承自 Logger.php 的类,并将该类的实例传递到文件 Config.php 的 setClassLogger 方法。
use NovaPoshta\Config;
Config::setClassLogger(new Logger_example());
日志记录类示例: https://github.com/serj1chen/NovaPoshta-SDK-PHP/blob/master/example/Logger_example.php。 (相应地,您可以将数据记录到某处)
setOriginalData 方法:新邮API的请求/响应。参数:toData - 请求(类型:string);fromData - 响应(类型:string)。
setData 方法:新邮API的请求/响应,格式为SDK。参数:toData - 请求(对象:DataContainer);fromData - 响应(对象:DataContainerResponse)。
** SDK 不是新邮的官方 SDK
许可
MIT