გადახდა
აბრუნებს გადახდის ტიპებს, რომლებსაც სასტუმრო ონლაინ ჯავშნებისთვის იღებს, და არჩეული ტიპისთვის იწყებს გადახდის ეტაპს. რა უნდა გააკეთოთ თითოეული ტიპისთვის, აღწერილია სახელმძღვანელოში გადახდის პროცესი.
/external/online/payment/typeგადახდის ტიპების სიაGET/external/payment/companyვირტუალური POS-ის მონაცემებიPOST/external/online/payment/type/{paymentType}გადახდის ეტაპის დაწყებაგადახდის ტიპების სია#
/external/online/payment/typeავთენტიფიკაცია: Authorization: Bearer
აბრუნებს გადახდის ტიპებს, რომლებიც სასტუმრომ ონლაინ გაყიდვებისთვის ჩართო. ტიპების ფიქსირებული ID-ები: 1 სასტუმროში გადახდა, 3 საბანკო გადარიცხვა, 9 საკრედიტო ბარათი (ბარათის მონაცემები ჯავშანთან ერთად იგზავნება), 10 ონლაინ გადახდა (ვირტუალური 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": "ონლაინ გადახდა ბარათით",
"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 ფრაგმენტს, რომელიც სტუმარს გადახდის პროვაიდერთან გადაიყვანს (პროვაიდერის მიხედვით — ავტომატურად გაგზავნადი ფორმა, 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": "სტანდარტული ოთახი · საუზმით",
"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": "სტანდარტული ოთახი · საუზმით",
"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' => 'სტანდარტული ოთახი · საუზმით',
'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": "ზირაათ ბანკი",
"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"
}