coucounco/salto 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

coucounco/salto

最新稳定版本:1.0

Composer 安装命令:

composer require coucounco/salto

包简介

A PHP Salto client implementing the PMS Industry Standard protocol via TCP/IP.

关键字:

README 文档

README

Latest Version on Packagist Total Downloads

A PHP Salto client implementing the PMS Industry Standard protocol via TCP/IP.

Installation

You can install the package via composer:

composer require rohsyl/salto

Usage

Create a client

$client = new SaltoClient('5.tcp.eu.ngrok.io', 14072);

Try to open the connection

$client->openSocketConnection();

Throws ConnectionFailedException when failed.

Check if the server is available

while (!$client->isReady()) {
    // wait some seconds and try again
    // or exit program
}

Send a message

$response = $client->sendMessage($message);

Messages available

Only the followings message have been implemented yet :

  • CNM : CheckInMobileMessage
  • CCM : CopyMobileMessage
  • MC : ModifyMessage
  • CO : CheckoutMessage

CNM : Check-in Mobile

Check-in for mobile apps.

Create access to a room for a guest with a phone number for given dates

$message = (new CheckInMobileMessage())
    ->forRoom('W10011')
    ->phone('+41774539943')
    ->from(Carbon::create(2022, 12, 21, 10, 30))
    ->to(Carbon::create(2022, 12, 30, 10, 30))
    ;

You can specify the operator

$message = (new CheckInMobileMessage())
    // ...
    ->by('Firstname Lastname')
    ;

You can set a text message to be shown on the phone’s display.

$message = (new CheckInMobileMessage())
    // ...
    ->withMessage('Lorem impsum')
    ;

You can allow or deny access to doors. You have to pass an array in parameter :

  • Key is the ID of the PMS Authorizations (See System > PMS Authorizations).
  • Value can be true or false.
$message = (new CheckInMobileMessage())
    // ...
    ->withAuthorizations(['1' => true])
    ;

CCM : Copy Mobile

Works the same way as CNM : CheckInMobileMessage.

MC : Modify

Modify a check in. Changing the expiry dates.

$message = (new ModifyMessage())
    ->fromRoom('W10011')
    ->expireAt(Carbon::create(2022, 12, 12, 11,0));

An error will be returned if the room is checked-out or not occupied.

CO : Check-out

Check-out a room.

$message = (new CheckoutMessage(+))
    ->forRoom('W10011');

Read response

An instance of Response is returned by the sendMessage method.

$response = $client->sendMessage($message);

If no exceptions is thrown, it means that everything went fine.

Display the string representation of the response and the request

$response->toString();
$response->getRequest()->toString();

Handle exceptions

Use a try .. catch !

try {

}
catch(SaltoException $e) {
    if($e instanceof ConnectionFailedException) {
        // ...
    }
    else if($e instanceof NakException) {
        // ...
    }
    else if($e instanceof WrongChecksumException) {
        // ...
    }
    else if($e instanceof SaltoErrorException) {
        // ...
    }
}

Existing exceptions :

  • ConnectionFailedException : Connection failed to the socket
  • NakException : Server responded with a negative acknowledgement. It means the server is not ready or the message sent is not correct (bad LRC)
  • WrongChecksumException : Response message is not correct (bad lrc)
  • SaltoErrorException : An error has been thrown by the server : See Error messages in PMS_SALTO_IS_V1.pdf

Testing

TODO

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email syzin12@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 1.63k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-01-03

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固