Pembayaran
Menampilkan jenis pembayaran yang diterima hotel untuk reservasi online dan memulai langkah pembayaran untuk jenis yang dipilih. Langkah untuk setiap jenis dijelaskan dalam panduan Alur pembayaran.
/external/online/payment/typeDaftar jenis pembayaranGET/external/payment/companyDetail virtual POSPOST/external/online/payment/type/{paymentType}Mulai langkah pembayaranDaftar jenis pembayaran#
/external/online/payment/typeAutentikasi: Authorization: Bearer
Mengembalikan jenis pembayaran yang diaktifkan hotel untuk penjualan online. ID jenis bersifat tetap: 1 bayar di hotel, 3 transfer bank, 9 kartu kredit (detail kartu dikirim bersama reservasi), 10 pembayaran online (virtual POS).
Parameter kueri
hotelIDintegerwajibRespons
200 Berhasil.
curl "https://test.hms.gen.tr/external/online/payment/type?hotelID=1000" \
-H "Authorization: Bearer $HMS_TOKEN"const res = await fetch("https://test.hms.gen.tr/external/online/payment/type?hotelID=1000", {
headers: {
"Authorization": `Bearer ${process.env.HMS_TOKEN}`
}
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/online/payment/type?hotelID=1000');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('HMS_TOKEN'),
],
]);
$data = json_decode(curl_exec($ch), true);{
"success": true,
"count": 3,
"items": [
{
"title": "Bayar di Hotel",
"title_translate": "odeme.otelde_odeme",
"typeID": 1
},
{
"title": "Transfer Bank",
"title_translate": "odeme.havale",
"typeID": 3
},
{
"title": "Pembayaran Kartu Online",
"title_translate": "odeme.online_odeme",
"typeID": 10
}
]
}Detail virtual POS#
/external/payment/companyAutentikasi: Authorization: Bearer
Mengembalikan penyedia virtual POS dan detail merchant hotel. Hanya diperlukan jika Anda mengintegrasikan penyedia secara langsung di sisi Anda; alur standar menggunakan POST …/payment/type/10. Respons berisi data rahasia; simpan hanya di sisi server.
Parameter kueri
hotelIDintegerwajibRespons
200 Berhasil.
Respons error
- 200
hotel_company_info_could_not_found— tidak ada virtual POS yang dikonfigurasi untuk hotel.
curl "https://test.hms.gen.tr/external/payment/company?hotelID=1000" \
-H "Authorization: Bearer $HMS_TOKEN"const res = await fetch("https://test.hms.gen.tr/external/payment/company?hotelID=1000", {
headers: {
"Authorization": `Bearer ${process.env.HMS_TOKEN}`
}
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/payment/company?hotelID=1000');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('HMS_TOKEN'),
],
]);
$data = json_decode(curl_exec($ch), true);{
"success": true,
"paymentCompany": {
"merchant_id": "4000****",
"store_key": "********",
"terminal_no": "VP00****",
"user": "demo_api",
"password": "********",
"max_installment": 6,
"company_id": 3,
"company_code": "iyzico",
"company_name": "iyzico"
}
}Mulai langkah pembayaran#
/external/online/payment/type/{paymentType}Autentikasi: Authorization: Bearer · Body: application/json
Mengembalikan tindakan yang perlu dilakukan untuk jenis pembayaran yang dipilih. Jenis 1 dan 9 hanya memerlukan hotelID; jenis 3 menampilkan daftar rekening bank; untuk jenis 10, pembayaran dimulai dengan data tamu dan keranjang, lalu code (HTML) yang dikembalikan ditampilkan di halaman tamu untuk meneruskannya ke layar pembayaran penyedia.
Parameter path
paymentTypeintegerwajib13910Body permintaan
hotelIDintegerwajibtotalPricedecimalorderIDstringreturnUrlstringname / surname / email / phonestringcity / addressstringcountryIDintegerid dari daftar negara.baskets[]object[]id, name, piece, price.Respons
200 Jenis 10: code berisi fragmen HTML yang meneruskan tamu ke penyedia pembayaran (form yang terkirim otomatis, script window.location, atau form checkout tersemat, tergantung penyedia). Tampilkan apa adanya di browser tamu. Untuk jenis lain, field message menjelaskan apa yang harus dilakukan.
Respons error
- 200
required_input_info_not_submitted(+errors[]) — ada field yang tidak dikirim untuk jenis 10;country_info_sent_incorrectly—countryIDtidak valid;there_is_missing_info_in_the_shopping_cart— ada field yang tidak lengkap pada item keranjang;bank_info_is_not_found— tidak ada rekening bank yang dikonfigurasi untuk jenis 3. - 404
paymentTypetidak dikenal.
curl -X POST "https://test.hms.gen.tr/external/online/payment/type/10" \
-H "Authorization: Bearer $HMS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"hotelID": 1000,
"totalPrice": 2330,
"orderID": "4811174883",
"returnUrl": "https://booking.example.com/payment/result",
"name": "Ayşe",
"surname": "Demir",
"email": "[email protected]",
"phone": "05551112233",
"city": "Denizli",
"address": "Kumsal Cad. No: 12",
"countryID": 1,
"baskets": [
{
"id": 2,
"name": "Kamar Standar · Termasuk Sarapan",
"piece": 1,
"price": 1930
},
{
"id": 12,
"name": "Makan Malam",
"piece": 1,
"price": 400
}
]
}'const res = await fetch("https://test.hms.gen.tr/external/online/payment/type/10", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.HMS_TOKEN}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hotelID": 1000,
"totalPrice": 2330,
"orderID": "4811174883",
"returnUrl": "https://booking.example.com/payment/result",
"name": "Ayşe",
"surname": "Demir",
"email": "[email protected]",
"phone": "05551112233",
"city": "Denizli",
"address": "Kumsal Cad. No: 12",
"countryID": 1,
"baskets": [
{
"id": 2,
"name": "Kamar Standar · Termasuk Sarapan",
"piece": 1,
"price": 1930
},
{
"id": 12,
"name": "Makan Malam",
"piece": 1,
"price": 400
}
]
})
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/online/payment/type/10');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('HMS_TOKEN'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'hotelID' => 1000,
'totalPrice' => 2330,
'orderID' => '4811174883',
'returnUrl' => 'https://booking.example.com/payment/result',
'name' => 'Ayşe',
'surname' => 'Demir',
'email' => '[email protected]',
'phone' => '05551112233',
'city' => 'Denizli',
'address' => 'Kumsal Cad. No: 12',
'countryID' => 1,
'baskets' => [
[
'id' => 2,
'name' => 'Kamar Standar · Termasuk Sarapan',
'piece' => 1,
'price' => 1930,
],
[
'id' => 12,
'name' => 'Makan Malam',
'piece' => 1,
'price' => 400,
],
],
]),
]);
$data = json_decode(curl_exec($ch), true);{
"success": true,
"message": "payment_order_code",
"code": "<form method=\"post\" action=\"https://vpos.provider.example/3d\"><input type=\"hidden\" name=\"orderId\" value=\"4811174883\"> … </form><script>document.forms[0].submit()</script>"
}{
"success": true,
"message": "payment_by_bank_transfer",
"banks": [
{
"companyName": "Bank Ziraat",
"holder": "Demo Turizm A.Ş.",
"branchName": "Denizli",
"branchNumber": "0123",
"bankAccountNumber": "12345678-5001",
"iban": "TR00 0001 0001 2345 6789 5001 01"
}
]
}{
"success": true,
"message": "credit_card_info_should_be_requested"
}