hele/partner-sync-api

Hele 合伙人同步 API PHP 库

v1.0.1 2016-12-08 15:50 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:47:37 UTC


README

Build Status Scrutinizer Code Quality

此存储库提供用于与 Hele.cz 网站同步预订的 PHP 客户端库。

最低支持的 PHP 版本是 5.3。

安装

安装此库的最佳方式是使用 Composer

composer require hele/partner-sync-api

或者从 Github 下载存档并将其解压到您的项目中。

简单使用

<?php

// require __DIR__ . '/hele-partner-sync-api/autoload.php'; // non-composer usage
require __DIR__ . '/vendor/autoload.php';

$app = new \HelePartnerSyncApi\Application('secret-key');
$app->onGetSlots(function (\DateTime $date, array $parameters) {
    // return $this->reservationFacade->getFreeSlots($date);
});
$app->onCreateReservation(function (\DateTime $startDateTime, \DateTime $endDateTime, $quantity, array $parameters) {
    // $this->reservationFacade->createReservation(...);
});
$app->onCancelReservation(function (\DateTime $startDateTime, \DateTime $endDateTime, $quantity, array $parameters) {
    // $this->reservationFacade->cancelReservation(...);
});
$app->run();
  • 所有 $parameters 参数都可以包含您的应用程序需要的自定义数据(例如,一些 serviceId 识别您应用程序中的服务) - 如果您需要,请联系我们。
  • 所有回调必须在 9 秒内完成!
  • 密钥将分配给您,不应泄露任何地方(如果某种情况下发生了这种情况,请联系我们生成新的一个)。

onCreateReservation

当用户在 Hele.cz 上创建订单时调用此端点。您应该将新预订保存到您的数据库中。如果由于某些原因无法创建预订,您可以抛出任何异常,Hele 网站上的预订将不会执行。我们仅在知道该时间段有空闲位置时(根据 onGetSlots 的输出)调用此端点,因此抛出异常通常不需要。

$parameters 中提供的数组包含(除了您的自定义数据外)以下键:customerNamecustomerEmailcustomerPhone(格式为 +420777111222)、customerNote。所有这些键的值可能为 null。

onCancelReservation

当之前创建的预订被取消时调用此端点。您应该从数据库中删除旧预订以释放时间段。如果您不希望实现此功能,请告知我们,在这种情况下我们将发送电子邮件给您(但您需要手动执行此操作)。

onGetSlots

此端点定期调用以同步 Hele.cz 上的预订与您的数据库。您应该始终返回所有数据库中的时间段(匹配给定日期和参数),即使只有少数时间段对 Hele 可用。回调必须以以下格式返回数组数组

[
    [
        'startDateTime' => DateTimeInterface,
        'endDateTime' => DateTimeInterface,
        'capacity' => int,
    ],
    [
        'startDateTime' => DateTimeInterface,
        'endDateTime' => DateTimeInterface,
        'capacity' => int,
    ],
]

测试实现

收到我们提供的 secret(通过电子邮件)后,您可以在 准备好的工具 上测试您的实现是否按预期工作。首先检查您的 API 是否使用 checkHealth 方法正确响应。然后尝试获取一些时间段并创建预订。之后,您应该看到您创建预订的时间段容量下降。