hele / partner-sync-api
Hele 合伙人同步 API PHP 库
Requires
- php: ^5.3.3|^7.0
Requires (Dev)
- php: ^7.0
- consistence/coding-standard: ^0.12.0
- jakub-onderka/php-parallel-lint: ~0.9
- phing/phing: ~2.15
- phpdocumentor/reflection-docblock: ~2.0.4
- phpstan/phpstan: ~0.4.0
- phpunit/phpunit: ~4.8
- satooshi/php-coveralls: ~1.0.1
- slevomat/coding-standard: ^1.1.1
This package is not auto-updated.
Last update: 2024-09-14 19:47:37 UTC
README
此存储库提供用于与 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
中提供的数组包含(除了您的自定义数据外)以下键:customerName
、customerEmail
、customerPhone
(格式为 +420777111222
)、customerNote
。所有这些键的值可能为 null。
onCancelReservation
当之前创建的预订被取消时调用此端点。您应该从数据库中删除旧预订以释放时间段。如果您不希望实现此功能,请告知我们,在这种情况下我们将发送电子邮件给您(但您需要手动执行此操作)。
onGetSlots
此端点定期调用以同步 Hele.cz 上的预订与您的数据库。您应该始终返回所有数据库中的时间段(匹配给定日期和参数),即使只有少数时间段对 Hele 可用。回调必须以以下格式返回数组数组
[ [ 'startDateTime' => DateTimeInterface, 'endDateTime' => DateTimeInterface, 'capacity' => int, ], [ 'startDateTime' => DateTimeInterface, 'endDateTime' => DateTimeInterface, 'capacity' => int, ], ]
测试实现
收到我们提供的 secret
(通过电子邮件)后,您可以在 准备好的工具 上测试您的实现是否按预期工作。首先检查您的 API 是否使用 checkHealth
方法正确响应。然后尝试获取一些时间段并创建预订。之后,您应该看到您创建预订的时间段容量下降。