Mulai cepat
Di halaman ini Anda akan membuat kunci API di panel HMS hotel dan mengambil daftar tamu yang sedang menginap. Anda memerlukan akses panel dengan pengguna yang berwenang mengelola kunci API; jika tidak, manajemen hotel dapat membuat kunci tersebut dan memberikannya kepada Anda.
1. Buat kunci#
- Di panel admin HMS, buka halaman API lalu beralih ke tab Custom API.
- Isi kolom deskripsi dengan tempat kunci akan digunakan (mis. Hotspot – Gedung utama), lalu simpan. HMS membuat kunci 13 karakter.
- Salin kunci dari daftar. Kunci ini terikat ke hotel dan tidak kedaluwarsa; kunci menjadi tidak valid begitu dihapus dari daftar.
export HMS_API_KEY="017f1daf2d139"Catat juga ID HMS hotel; contoh-contoh di sini mengirimnya sebagai HotelCode: 1000. Header ini tidak digunakan untuk validasi, tetapi menunjukkan di log hotel mana yang dikueri.
2. Ambil daftar#
Endpoint dipanggil dengan POST dan tidak menerima body:
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. Baca respons#
Setiap tamu yang sedang menginap adalah record terpisah dalam array otelde. Contoh yang dipotong untuk dua tamu yang berbagi kamar:
{
"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
}
]
}uniquebersifat unik untuk setiap tamu; kaitkan pengguna hotspot dengan nilai ini.rezervasyon_idsama untuk tamu di kamar yang sama.- Nomor kamar yang diminta di portal dibandingkan dengan
roomName, dan nama belakang denganlastName. Nilainya biasanya dalam huruf kapital. checkinadalah waktu check-in;checkoutadalah tanggal check-out yang direncanakan (00:00 UTC) tanpa jam. Tambahkan jam check-out hotel untuk mendapatkan akhir sesi.- Jika tidak ada tamu yang menginap,
oteldeberupa array kosong dansuccesstetap1.
Selanjutnya#
- Alur verifikasi tamu — aturan pencocokan, masa berlaku sesi, sinkronisasi berkala
- Autentikasi — pengelolaan kunci dan respons 401
- Referensi API — penjelasan setiap field