hgv/mss-php

此包已被废弃且不再维护。作者建议使用 bookingsuedtirol/mss-php 包。

MSS API 客户端,适用于 PHP 项目

v5.0.1 2024-01-10 09:42 UTC

README

Packagist Version (including pre-releases)

MSS API 客户端,适用于 PHP 项目。仅支持 MSS 2.0!

安装

PHP 版本要求:8.1 或更高。

MSS API 客户端不与 Guzzle、Buzz 或任何其他发送 HTTP 消息的库硬耦合。相反,它使用 PSR-18 客户端抽象。这将使您能够选择想要使用的 PSR-7 实现 和 HTTP 客户端。

composer require hgv/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_IDGROUP_ID 值。

自动化测试

在 Docker 容器中运行 composer test