slevomat/商品API库

斯莱沃玛特商品API PHP库

2.0.0 2021-02-02 14:20 UTC

This package is auto-updated.

Last update: 2024-08-29 04:00:21 UTC


README

Build status Latest Stable Version Code coverage

商品API文档

此库用于实现合作伙伴 -> 斯莱沃玛特之间的通信。

库需要PHP 7.4或更高版本,并假定使用Composer工具。

安装库

composer require slevomat/zbozi-api-library

使用库

在仓库中存在一个名为examples.php的文件,其中包含示例用法。API通过\SlevomatZboziApi\ZboziApiClient对象上的方法调用。

可以通过工厂最简单地创建对象

$client = \SlevomatZboziApi\ZboziApiClientFactory::create($partnerToken, $apiSecret, $apiUrl, $timeout, $logger); // logger a timeout jsou nepovinné

在调用客户端方法时,会调用斯莱沃玛特API。例如:

$expectedDeliveryDate = $client->markGettingReadyForPickup($orderId);

错误状态

调用API时可能会出现多种错误。抛出以下异常

  • \SlevomatZboziApi\Request\ConnectionErrorException - 无法连接到API,请重试请求

如果成功连接到API,库可能会抛出以下错误(所有错误都是\SlevomatZboziApi\Request\InvalidRequestException类型的)

  • \SlevomatZboziApi\Request\InvalidCredentialsException - 无效的登录凭证
  • \SlevomatZboziApi\Request\OrderNotFoundException - 找不到订单
  • \SlevomatZboziApi\Request\OrderItemNotFoundException - 订单中不存在该商品
  • \SlevomatZboziApi\Request\InvalidStatusChangeException - 订单无法切换到不允许的状态
  • \SlevomatZboziApi\Request\InvalidCancelException - 无效的取消操作 - 取消的商品数量超过了实际数量
  • \SlevomatZboziApi\Request\OtherRequestErrorException - 其他错误
  • \SlevomatZboziApi\Request\OrderNotExportedException - 订单尚未导出到合作伙伴API - 无法通过API对其进行操作

所有InvalidRequestException异常都有getMessages()方法,该方法用于获取服务器返回的错误信息。

对于这些错误,在重复尝试之前需要修复发送的请求。如果发送相同的请求,则可能会遇到相同的错误。

库中的所有异常都实现了SlevomatZboziApi\ZboziApiException接口,如果不需要对每个错误状态进行特殊处理,可以捕获此类型。

请求日志记录

库支持可选的请求日志记录。要实现日志记录,请使用接口\SlevomatZboziApi\ZboziApiLogger

仓库中有一个名为ExampleLogger.php的示例logger,它直接将请求信息打印出来。