Γρήγορη εκκίνηση
Σε αυτή τη σελίδα θα δημιουργήσετε ένα κλειδί API στον πίνακα διαχείρισης HMS του ξενοδοχείου και θα ανακτήσετε τη λίστα των διαμενόντων επισκεπτών. Χρειάζεστε πρόσβαση στον πίνακα διαχείρισης με χρήστη που έχει δικαίωμα διαχείρισης κλειδιών API· διαφορετικά, η διεύθυνση του ξενοδοχείου μπορεί να δημιουργήσει το κλειδί και να σας το δώσει.
1. Δημιουργία κλειδιού#
- Στον πίνακα διαχείρισης του HMS ανοίξτε τη σελίδα API και μεταβείτε στην καρτέλα Προσαρμοσμένο API.
- Στο πεδίο περιγραφής σημειώστε πού θα χρησιμοποιηθεί το κλειδί (π.χ. Hotspot – Κεντρικό κτίριο) και αποθηκεύστε. Το HMS δημιουργεί ένα κλειδί 13 χαρακτήρων.
- Αντιγράψτε το κλειδί από τη λίστα. Είναι δεσμευμένο στο ξενοδοχείο και δεν λήγει· παύει να ισχύει τη στιγμή που θα διαγραφεί από τη λίστα.
export HMS_API_KEY="017f1daf2d139"Σημειώστε επίσης το αναγνωριστικό HMS του ξενοδοχείου· τα παραδείγματα το στέλνουν ως HotelCode: 1000. Η κεφαλίδα δεν χρησιμοποιείται για επικύρωση, αλλά δείχνει στα αρχεία καταγραφής ποιο ξενοδοχείο ερωτήθηκε.
2. Ανάκτηση της λίστας#
Το τελικό σημείο καλείται με POST και δεν δέχεται σώμα:
curl -X POST "https://test.hms.gen.tr/public/json/customer/inhotel" \
-H "ApiKey: $HMS_API_KEY" \
-H "HotelCode: 1000"const res = await fetch("https://test.hms.gen.tr/public/json/customer/inhotel", {
method: "POST",
headers: {
"ApiKey": process.env.HMS_API_KEY,
"HotelCode": "1000"
}
});
if (res.status === 401) throw new Error("Invalid ApiKey");
const data = await res.json();
for (const g of data.otelde) {
console.log(g.roomName, g.firstName, g.lastName, new Date(g.checkout * 1000));
}$ch = curl_init('https://test.hms.gen.tr/public/json/customer/inhotel');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'ApiKey: ' . getenv('HMS_API_KEY'),
'HotelCode: 1000',
],
]);
$body = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 401) {
throw new RuntimeException('Invalid ApiKey');
}
$data = json_decode($body, true);
foreach ($data['otelde'] as $g) {
echo $g['roomName'], ' · ', $g['firstName'], ' ', $g['lastName'], ' · ', date('d.m.Y', $g['checkout']), "\n";
}3. Ανάγνωση της απόκρισης#
Κάθε διαμένων επισκέπτης είναι ξεχωριστή εγγραφή στον πίνακα otelde. Ένα περικομμένο παράδειγμα για δύο επισκέπτες στο ίδιο δωμάτιο:
{
"success": 1,
"otelde": [
{
"unique": 58211,
"firstName": "AYŞE",
"lastName": "DEMİR",
"identityNumber": "11111111110",
"birthDate": "14.03.1985",
"roomID": 4,
"roomName": "104",
"checkin": 1788863400,
"checkout": 1788998400,
"rezervasyon_id": 282799
},
{
"unique": 58212,
"firstName": "MEHMET",
"lastName": "DEMİR",
"identityNumber": "22222222220",
"birthDate": "02.11.1982",
"roomID": 4,
"roomName": "104",
"checkin": 1788863400,
"checkout": 1788998400,
"rezervasyon_id": 282799
}
]
}- Το
uniqueείναι μοναδικό ανά επισκέπτη· συνδέστε τον χρήστη του hotspot με αυτό. Τοrezervasyon_idείναι κοινό για τους επισκέπτες του ίδιου δωματίου. - Ο αριθμός δωματίου που ζητείται στο portal συγκρίνεται με το
roomNameκαι το επώνυμο με τοlastName. Οι τιμές είναι συνήθως με κεφαλαία. - Το
checkinείναι η στιγμή του check-in· τοcheckoutείναι η προγραμματισμένη ημερομηνία αναχώρησης (00:00 UTC) χωρίς ώρα. Προσθέστε την ώρα check-out του ξενοδοχείου για να βρείτε τη λήξη της συνεδρίας. - Αν δεν διαμένει κανείς, το
oteldeείναι κενός πίνακας και τοsuccessεξακολουθεί να είναι1.
Τι ακολουθεί#
- Ροή επαλήθευσης επισκεπτών — κανόνες αντιστοίχισης, διάρκεια συνεδρίας, περιοδικός συγχρονισμός
- Έλεγχος ταυτότητας — διαχείριση κλειδιών και η απόκριση 401
- Αναφορά API — επεξήγηση κάθε πεδίου