coucounco / salto
使用TCP/IP协议实现PMS行业标准协议的PHP Salto客户端。
1.0
2022-12-21 15:58 UTC
Requires
- php: >=8.0
- ext-sockets: *
- nesbot/carbon: ^2.62
Requires (Dev)
- phpunit/phpunit: ^8.2
- symfony/var-dumper: ^4.3
This package is not auto-updated.
Last update: 2024-09-26 15:18:09 UTC
README
使用TCP/IP协议实现PMS行业标准协议的PHP Salto客户端。
安装
您可以通过composer安装此包
composer require rohsyl/salto
使用方法
创建客户端
$client = new SaltoClient('5.tcp.eu.ngrok.io', 14072);
尝试打开连接
$client->openSocketConnection();
失败时抛出
ConnectionFailedException
检查服务器是否可用
while (!$client->isReady()) { // wait some seconds and try again // or exit program }
发送消息
$response = $client->sendMessage($message);
可用的消息
目前仅实现了以下消息
- CNM :
CheckInMobileMessage
- CCM :
CopyMobileMessage
- MC :
ModifyMessage
- CO :
CheckoutMessage
CNM : Check-in Mobile
为移动应用程序进行登记。
为指定日期的客人创建一个带有电话号码的房间访问权限。
$message = (new CheckInMobileMessage()) ->forRoom('W10011') ->phone('+41774539943') ->from(Carbon::create(2022, 12, 21, 10, 30)) ->to(Carbon::create(2022, 12, 30, 10, 30)) ;
您可以指定运营商
$message = (new CheckInMobileMessage()) // ... ->by('Firstname Lastname') ;
您可以为手机显示设置文本消息。
$message = (new CheckInMobileMessage()) // ... ->withMessage('Lorem impsum') ;
您可以允许或拒绝门禁访问。您需要通过参数传递一个数组
- 键 是PMS授权的ID(见系统 > PMS授权)。
- 值 可以是
true
或false
。
$message = (new CheckInMobileMessage()) // ... ->withAuthorizations(['1' => true]) ;
CCM : Copy Mobile
与CNM : CheckInMobileMessage
工作方式相同。
MC : 修改
修改登记。更改到期日期。
$message = (new ModifyMessage()) ->fromRoom('W10011') ->expireAt(Carbon::create(2022, 12, 12, 11,0));
如果房间已退房或未占用,将返回错误。
CO : 退房
退房房间。
$message = (new CheckoutMessage(+)) ->forRoom('W10011');
读取响应
由 sendMessage
方法返回 Response
实例。
$response = $client->sendMessage($message);
如果没有抛出异常,则表示一切正常。
显示响应和请求的字符串表示形式
$response->toString(); $response->getRequest()->toString();
处理异常
使用 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) { // ... } }
现有异常
ConnectionFailedException
: 套接字连接失败NakException
: 服务器响应了负确认。这意味着服务器未准备好或发送的消息不正确(错误的LRC)WrongChecksumException
: 响应消息不正确(错误的lrc)SaltoErrorException
: 服务器抛出了错误:请参阅PMS_SALTO_IS_V1.pdf中的错误消息
测试
待办事项
composer test
更改日志
有关最近更改的更多信息,请参阅更改日志
贡献
有关详细信息,请参阅贡献指南
安全性
如果您发现任何安全问题,请通过syzin12@gmail.com发送电子邮件,而不是使用问题跟踪器。
致谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件