picqer/api-client

PHP 客户端用于 Picqer API

v0.24.0 2024-08-14 15:17 UTC

README

此项目是一个 PHP 库,用于在您的 PHP 应用程序中使用 Picqer API。

API 的完整文档可以在 picqer.com/en/api 找到

安装

此项目可以通过 Composer 轻松安装。

composer require picqer/api-client

示例:获取订单

<?php

require __DIR__ . '/vendor/autoload.php';

$subDomain = 'jansens-webwinkels';
$apiKey = '1023ihs0edfh';

$apiClient = new Picqer\Api\Client($subDomain, $apiKey);
$apiClient->enableRetryOnRateLimitHit();
$apiClient->setUseragent('My amazing app (dev@example.org)');

$orders = $apiClient->getOrders();
var_dump($orders);

示例:结果生成器

如果您想遍历所有产品或订单,可以使用结果生成器。这将使您在 API 返回结果时立即在循环中获得结果。这还将有助于内存使用。

<?php

require __DIR__ . '/vendor/autoload.php';

$subDomain = 'jansens-webwinkels';
$apiKey = '1023ihs0edfh';

$apiClient = new Picqer\Api\Client($subDomain, $apiKey);
$apiClient->enableRetryOnRateLimitHit();
$apiClient->setUseragent('My amazing app (dev@example.org)');

foreach ($apiClient->getResultGenerator('order') as $order) {
    var_dump($order);
}

更多示例

查看 examples/ 文件夹中的示例。

有用的方法

setUseragent()

如果您使用构建应用程序的应用程序或开发者的名称设置用户代理,对我们来说将很有帮助。然后,如果我们看到异常行为,我们可以联系您。

sendRequest()

这是客户端的主要方法,用于发送 API 请求。如果还有尚未在客户端中实现具有专用方法的新的 API 端点,您可以使用 sendRequest() 自行创建请求。

getResultGenerator()

这是一个 生成器,用于所有列出方法,如 getOrders 和 getProducts。这将在您在许多订单或产品中循环时帮助减少应用程序的内存使用。

enableDebugmode()

此标志提供了有关客户端发送的请求和作为结果的原始响应的大量调试信息。

速率限制

请记住 Picqer API 的速率限制。在结果数组中,您会得到一个 'rate-limit-remaining' 键,其中包含您在本分钟内可以进行的剩余请求。如果可能,请勿在此为 0 时进行更多请求。

当您尝试另一个请求时,该请求将失败。此客户端将抛出一个 RateLimitException。您可以捕获这些异常,并在稍后再次尝试请求。

我们还有一个选项 $apiClient->enableRetryOnRateLimitHit(),您可以使用它来在达到速率限制时启用请求的重试。当客户端达到速率限制时,它将暂停 20 秒并再次尝试相同的请求。

Webhooks 辅助工具

此客户端还包含接收 webhooks 的辅助工具,包括签名检查器。这包含在 PicqerWebhook 类中。

要接收 webhook,您只需要以下内容

<?php

require __DIR__ . '/vendor/autoload.php';

$webhook = Picqer\Api\PicqerWebhook::retrieve();

echo 'Hook received: ' . $webhook->getName() . ' that was triggered at ' . $webhook->getEventTriggeredAt() . PHP_EOL;
echo $webhook->getData();

我们建议使用签名验证来确保 webhook 是由 Picqer 发送的。创建一个带有密钥的钩子,然后使用以下方式检查 webhook 的签名

<?php

require __DIR__ . '/vendor/autoload.php';

$webhook = Picqer\Api\PicqerWebhook::retrieveWithSecret('your-secret');

如果密钥或签名不匹配,这将抛出一个 WebhookSignatureMismatchException

支持

需要帮助实现 Picqer API?请随时 联系我们