serkancelik17 / hotel_content_api_sdk
Hotelbeds Hotel-API SDK for PHP
v1.0.0
2022-05-25 19:22 UTC
Requires
- php: >=5.5
- nicmart/string-template: v0.1.0
- zendframework/zend-config: 2.5.1
- zendframework/zend-http: ^2.5
- zendframework/zend-json: ^2.5
Requires (Dev)
- php: >=5.5
- phpunit/php-code-coverage: 3.0.1
- phpunit/phpunit: 5.0.8
- zendframework/zend-http: ^2.5
- zendframework/zend-json: ^2.5
This package is auto-updated.
Last update: 2024-09-26 01:15:20 UTC
README
简介
Hotelbeds SDK for PHP 是一套工具集合,其主要目标是帮助开发使用 Hotelbeds API 的 PHP 应用程序。这是一个在 packagist.org 仓库上可用的 composer 库。
https://packagist.org.cn/packages/hotelbeds/hotel-api-sdk-php
许可证
此软件基于 LGPL v2.1 许可证。请参阅文件 LICENSE 获取具体细节以及更多许可证和版权信息。
安装
使用 Composer 工具从控制台安装
composer require hotelbeds/hotel-api-sdk-php
使用 PHPStorm 的 Composer 依赖管理器:http://blog.jetbrains.com/webide/2013/03/composer-support-in-phpstorm/
测试
在单元测试目录中可以找到可以运行于 phpunit 的不同测试。存在不同的测试集:可用性和预订。
.\vendor\bin\phpunit --testsuite availability
此测试套件执行:API 状态,在 PMI 目的地上创建可用性,选择一个房间并执行价格检查和预订。
使用 SDK
概述
HotelApiClient 类有各种方法,实现了各种 HotelAPI 调用
- 可用性
- 价格检查
- 预订确认
- 预订取消
- 预订列表
- 状态
每个方法都有一个 ApiHelper 类型的参数,有四种可能的类型
- 可用性
- 价格检查
- 预订
- 预订列表
每个调用的所有响应都可以使用 PHP 对象或数组进行迭代。内部将 JSON 响应结构转换为 PHP 关联数组。
使用 PSR-0 自动加载库
<?php require __DIR__ .'/vendor/autoload.php'; use hotelbeds\hotel_api_sdk\HotelApiClient; use hotelbeds\hotel_api_sdk\model\Destination; use hotelbeds\hotel_api_sdk\model\Occupancy; use hotelbeds\hotel_api_sdk\model\Pax; use hotelbeds\hotel_api_sdk\model\Rate; use hotelbeds\hotel_api_sdk\model\Stay; use hotelbeds\hotel_api_sdk\types\ApiVersion; use hotelbeds\hotel_api_sdk\types\ApiVersions; use hotelbeds\hotel_api_sdk\messages\AvailabilityRS; $reader = new Zend\Config\Reader\Ini(); $config = $reader->fromFile(__DIR__.'/HotelApiClient.ini'); $cfgApi = $config["apiclient"]; $apiClient = new HotelApiClient($cfgApi["url"], $cfgApi["apikey"], $cfgApi["sharedsecret"], new ApiVersion(ApiVersions::V1_0), $cfgApi["timeout"]); $rqData = new \hotelbeds\hotel_api_sdk\helpers\Availability(); $rqData->stay = new Stay(DateTime::createFromFormat("Y-m-d", "2016-02-01"), DateTime::createFromFormat("Y-m-d", "2016-02-10")); $rqData->destination = new Destination("PMI"); $occupancy = new Occupancy(); $occupancy->adults = 2; $occupancy->children = 1; $occupancy->rooms = 1; $occupancy->paxes = [ new Pax(Pax::AD, 30, "Mike", "Doe"), new Pax(Pax::AD, 27, "Jane", "Doe"), new Pax(Pax::CH, 8, "Mack", "Doe") ]; $rqData->occupancies = [ $occupancy ]; $availRS = $apiClient->availability($rqData);
迭代可用性结果
在调用可用性方法后,可以使用迭代器迭代结果或以数组形式读取。
// Iterate all returned hotels with an Hotel object foreach ($availRS->hotels->iterator() as $hotelCode => $hotelData) { // Get all hotel data (from Hotel object $hotelData) // Iterate all rooms of each hotel foreach ($hotelData->iterator() as $roomCode => $roomData) { // Iterate all rate of each room foreach($roomData->rateIterator() as $rateKey => $rateData) { } } }