bookingsuedtirol / mss-php
MSS API 客户端,适用于 PHP 项目
v6.0.0
2024-07-30 09:57 UTC
Requires
- php: >=8.1
- jms/serializer: ^3.12
- php-http/client-common: ^2.1
- php-http/discovery: ^1.7
- psr/http-client: ^1.0
Requires (Dev)
- glynnforrest/crutches: ^0.4
- kriswallsmith/buzz: ^1.1
- nyholm/psr7: ^1.0
- phpunit/phpunit: ^10.5.5
- vlucas/phpdotenv: ^5.1
This package is auto-updated.
Last update: 2024-09-30 11:57:54 UTC
README
MSS API 客户端,适用于 PHP 项目。仅支持 MSS 2.0!
安装
PHP 版本要求:8.1 或更高。
MSS API 客户端并非与 Guzzle、Buzz 或其他发送 HTTP 信息的库紧密耦合。相反,它使用 PSR-18 客户端抽象。这将使您能够选择您想要的 PSR-7 实现和 HTTP 客户端。
composer require bookingsuedtirol/mss-php kriswallsmith/buzz nyholm/psr7
可用方法
- getHotelList
- getSpecialList
- getRoomList
- getPriceList
- getRoomAvailability
- prepareBooking
- getBooking
- createInquiry
- getUserSources
- getLocationList
- getMasterpackagesList
- getThemeList
- validateCoupon
示例
<?php require __DIR__ . "/vendor/autoload.php"; use Crutches\Bitmask; use MssPhp\Client; use MssPhp\Bitmask\HotelDetails; $client = new Client([ "user" => "username", "password" => "password", "source" => "source", ]); $res = $client->request(function ($req) { $req->header->method = "getHotelList"; $req->request->search->id = ["11230"]; $req->request->options->hotel_details = (new Bitmask( HotelDetails::BASIC_INFO | HotelDetails::COORDINATES ))->getBitmask(); }); $hotel = $res["result"]["hotel"][0]; $hotel["name"]; // => string(18) "Hotel Lichtenstern" $hotel["stars"]; // => float(3) $hotel["geolocation"]["latitude"]; // => float(46.53063158978)
查看 examples
目录以获取更高级的用法。
异常处理
如果 MSS 返回错误响应,将抛出 MssException
异常。
<?php use MssPhp\Exception; // ... try { $res = $client->request(function ($req) { // ... }); } catch (Exception\MssException $e) { $e->getMessage(); // => string(50) "Invalid value '2016-04-08' for parameter 'arrival'" $e->getCode(); // => int(32) $e->getResponse()->getStatusCode(); // => int(400) }
开发
运行 docker compose run cli bash
。
如果您在此文件夹中遇到某些文件的权限问题,请更改 Dockerfile 中的 USER_ID
和 GROUP_ID
值。
自动测试
在 Docker 容器内运行 composer test
。