Πληρωμή
Επιστρέφει τους τύπους πληρωμής που δέχεται το ξενοδοχείο για online κρατήσεις και ξεκινά το βήμα πληρωμής για τον επιλεγμένο τύπο. Τι κάνετε για κάθε τύπο περιγράφεται στον οδηγό Ροή πληρωμής.
/external/online/payment/typeΛίστα τύπων πληρωμήςGET/external/payment/companyΣτοιχεία εικονικού POSPOST/external/online/payment/type/{paymentType}Έναρξη βήματος πληρωμήςΛίστα τύπων πληρωμής#
/external/online/payment/typeΈλεγχος ταυτότητας: Authorization: Bearer
Επιστρέφει τους τύπους πληρωμής που έχει ενεργοποιήσει το ξενοδοχείο για online πωλήσεις. Σταθερά αναγνωριστικά τύπων: 1 πληρωμή στο ξενοδοχείο, 3 τραπεζικό έμβασμα, 9 πιστωτική κάρτα (τα στοιχεία της κάρτας αποστέλλονται με την κράτηση), 10 online πληρωμή (εικονικό POS).
Παράμετροι ερωτήματος
hotelIDintegerυποχρεωτικόΑπόκριση
200 Επιτυχία.
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": "Πληρωμή στο ξενοδοχείο",
"title_translate": "odeme.otelde_odeme",
"typeID": 1
},
{
"title": "Τραπεζικό έμβασμα",
"title_translate": "odeme.havale",
"typeID": 3
},
{
"title": "Online πληρωμή με κάρτα",
"title_translate": "odeme.online_odeme",
"typeID": 10
}
]
}Στοιχεία εικονικού POS#
/external/payment/companyΈλεγχος ταυτότητας: Authorization: Bearer
Επιστρέφει τον πάροχο εικονικού POS του ξενοδοχείου και τα στοιχεία εμπόρου. Χρειάζεται μόνο αν συνδέετε τον πάροχο απευθείας από τη δική σας πλευρά· η τυπική ροή χρησιμοποιεί το POST …/payment/type/10. Η απόκριση περιέχει μυστικά στοιχεία· κρατήστε την στον διακομιστή.
Παράμετροι ερωτήματος
hotelIDintegerυποχρεωτικόΑπόκριση
200 Επιτυχία.
Αποκρίσεις σφαλμάτων
- 200
hotel_company_info_could_not_found— δεν έχει ρυθμιστεί εικονικό POS για το ξενοδοχείο.
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"
}
}Έναρξη βήματος πληρωμής#
/external/online/payment/type/{paymentType}Έλεγχος ταυτότητας: Authorization: Bearer · Σώμα: application/json
Επιστρέφει τι πρέπει να γίνει για τον επιλεγμένο τύπο πληρωμής. Οι τύποι 1 και 9 χρειάζονται μόνο το hotelID· ο τύπος 3 επιστρέφει τους τραπεζικούς λογαριασμούς· για τον τύπο 10 η πληρωμή ξεκινά με τα στοιχεία του επισκέπτη και του καλαθιού, και το code (HTML) που επιστρέφεται αποδίδεται στη σελίδα του επισκέπτη για τη μετάβαση στην οθόνη πληρωμής του παρόχου.
Παράμετροι διαδρομής
paymentTypeintegerυποχρεωτικό13910Σώμα αιτήματος
hotelIDintegerυποχρεωτικόtotalPricedecimalorderIDstringreturnUrlstringname / surname / email / phonestringcity / addressstringcountryIDintegerid από τη λίστα χωρών.baskets[]object[]id, name, piece, price.Απόκριση
200 Τύπος 10: το code περιέχει ένα τμήμα HTML που μεταφέρει τον επισκέπτη στον πάροχο πληρωμών (φόρμα με αυτόματη υποβολή, script window.location ή ενσωματωμένη φόρμα πληρωμής, ανάλογα με τον πάροχο). Αποδώστε το αυτούσιο στο πρόγραμμα περιήγησης του επισκέπτη. Για τους άλλους τύπους, το πεδίο message δείχνει τι πρέπει να γίνει.
Αποκρίσεις σφαλμάτων
- 200
required_input_info_not_submitted(+errors[]) — λείπει πεδίο για τον τύπο 10·country_info_sent_incorrectly— μη έγκυροcountryID·there_is_missing_info_in_the_shopping_cart— λείπει πεδίο σε στοιχείο του καλαθιού·bank_info_is_not_found— δεν έχει ρυθμιστεί τραπεζικός λογαριασμός για τον τύπο 3. - 404 Άγνωστο
paymentType.
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": "Standard Δωμάτιο · Με πρωινό",
"piece": 1,
"price": 1930
},
{
"id": 12,
"name": "Δείπνο",
"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": "Standard Δωμάτιο · Με πρωινό",
"piece": 1,
"price": 1930
},
{
"id": 12,
"name": "Δείπνο",
"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' => 'Standard Δωμάτιο · Με πρωινό',
'piece' => 1,
'price' => 1930,
],
[
'id' => 12,
'name' => 'Δείπνο',
'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": "Τράπεζα 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"
}