一个PHP库,用于连接到SynXis/Windsurfer CRS。

dev-master 2018-08-07 22:22 UTC

This package is not auto-updated.

Last update: 2024-09-23 07:44:06 UTC


README

此软件包提供了通过SOAP API连接到SynXis和Windsurfer中央预订系统(CRS)的方法。它目前处于开发中,尚未准备好使用。

入门

先决条件

此软件包依赖于仅适用于PHP 7.0或更高版本的某些操作符。

它还使用PHP的SOAP扩展连接到SOAP API。请确保您已安装了PHP SOAP扩展。

您可以在phpinfo中查找SOAP扩展,以查看它是否已安装。

$ php -i | grep -i soap

如果您没有看到它,可以按照以下步骤安装(Ubuntu/Debian)

$ sudo apt-get install php-soap

安装后可能需要重新启动服务器。

安装

composer require gurwinderantal/crs

用法

此库目前能够连接到SynXis和Windsurfer中央预订系统。

使用CRS提供商提供的所有凭据构建一个数组。这将用于SOAP请求的头部。

$credentials = [
    'username'   => 'MyUsername',
    'password'   => 'MyPassword',
];

凭据数组中必须存在usernamepassword必须存在,否则尝试实例化连接器类将引发异常。其他键(如systemId)是可选的,但可能导致结果不正确。请仔细阅读CRS提供商的文档。

实例化您想要使用的CRS的连接器类

$wsdl = 'https://example.path/to/Service.asmx?WSDL';
$synxis_connector = new SynxisConnector($wsdl, $credentials);
$windsurfer_connector = new WindsurferConnector($wsdl, $credentials);

调用所需的方法

$response = $connector->getFunctions();

可用方法包括

  1. getFunctions:获取CRS服务可用的方法列表。
  2. checkAvailability:根据提供的参数检查可用性。所有参数都必须放入一个数组中。数组键必须与SOAP请求的XML请求完全匹配。请参阅您服务的WSDL以获取可用的属性。例如
    $params = [
        'ID'           => 'xx',
        'ID_Context'   => 'Open Hospitality',
        'Code'         => 'xxxx',
        'RatePlanCode' => 'MYRATECODE',
        'HotelCode'    => 'MYHOTELCODE',
        'Start'        => '2018-06-03',
        'End'          => '2018-06-07',
        'Quantity'     => 1,
        'Count'        => [
            'Child' => 0,
            'Adult' => 2,
        ],
    ];
    
    如果允许有多个具有相同属性的元素(如上面示例中的count),请将其作为一个具有不同键的数组。在软件包有一个稳定版本时,将在文档中提供预期的键列表。
  3. createReservation
  4. modifyReservation
  5. cancelReservation

在大多数情况下,响应对象将作为包含属性、数组或其他对象引用的单个对象返回。响应对象的结构将与相应SOAP请求的响应XML相匹配。例如,要获取您请求可用性的酒店名称

$hotelName = $response->RoomStays->RoomStay->BasicPropertyInfo->HotelName;