დაჯავშნის პროცესი

დაჯავშნის სისტემის ტიპური პროცესი: მიიღეთ ტოკენი, გამოიტანეთ ოთახები სტუმრის მიერ მოძებნილი თარიღებისა და სტუმრების რაოდენობისთვის, გამოიყენეთ არჩეული ტარიფი და კუპონი (ასეთის არსებობისას), დაასრულეთ გადახდის ეტაპი და ჩაწერეთ ჯავშანი HMS-ში BookingPushRQ სტრუქტურით. ამ სახელმძღვანელოში თითოეული ნაბიჯი რეალური მოთხოვნებითა და პასუხებითაა აღწერილი.

1შესვლა/external/public/login
2ოთახების სია/external/online/roomType
3კუპონი · პაკეტებიcoupon/search · stock/packages
4გადახდაpayment/type/{type}
5გადაცემაchannel/booking

1. ტოკენის მიღება#

შედით ერთხელ — სერვერის გაშვებისას ან ტოკენის ვადის გასვლისას — და შეინახეთ ტოკენი სასტუმროს ID-სთან ერთად. დეტალები: ავთენტიფიკაცია.

2. ოთახების სიის მიღება#

მოითხოვეთ ოთახების სია სტუმრის საძიებო ფორმის მნიშვნელობებით. თუ ბავშვებიც მოგზაურობენ, გაგზავნეთ მათი ასაკი; ბავშვის ფასი ასაკის მიხედვით გამოითვლება.

ტერმინალი
curl "https://test.hms.gen.tr/external/online/roomType" \
  -H "Authorization: Bearer $HMS_TOKEN" \
  -d "hotelID=1000" -d "startDate=2026-08-18" -d "endDate=2026-08-20" \
  -d "adultCount=2" -d "childCount=1" -d "childAges[]=7" -d "language=en"

რა უნდა აჩვენოთ პასუხში თითოეული ოთახის ტიპისთვის:

ველიეკრანზე
name, images[], detail, roomFeatures[]ოთახის ბარათი
roomCountდარჩენილი ოთახები. 0 ნიშნავს „არ იყიდება“ — მიზეზი roomRestrictionMessage ველშია.
accommodationTypes[].titleკვების ვარიანტი (საუზმით, ნახევარი პანსიონი…)
accommodationTypes[].prices{}ტარიფის ვარიანტები: სტანდარტული და დაუბრუნებადი

prices ობიექტის გასაღებებს აქვს ფორმა "<persons>-<1|0>". სუფიქსი 1 სტანდარტული (დაბრუნებადი) ტარიფია, 0 — დაუბრუნებადი; დაუბრუნებად ვარიანტს აქვს nonRefundable: "[NR]". როცა ფასი ოთახზეა დაწესებული (priceType: 1), გასაღებია 1-1 / 1-0, სტუმრების რაოდენობის მიუხედავად.

accommodationTypes[0].prices
{
    "2-1": {
        "total": 2,
        "title": 2,
        "nonRefundable": "",
        "price": "1930.00",
        "currency": "TRY",
        "id": "2/2",
        "prices": [
            {
                "price": "965.00",
                "tarih": "18.08.2026"
            },
            {
                "price": "965.00",
                "tarih": "19.08.2026"
            }
        ]
    },
    "2-0": {
        "total": 2,
        "title": 2,
        "nonRefundable": "[NR]",
        "price": "1737.00",
        "currency": "TRY",
        "id": "2-0/2",
        "prices": [
            {
                "price": "868.50",
                "tarih": "18.08.2026"
            },
            {
                "price": "868.50",
                "tarih": "19.08.2026"
            }
        ]
    }
}

3. კუპონები და პაკეტები#

თუ სტუმარი კუპონს შეიყვანს, შეამოწმეთ იგი და ფასდაკლება თქვენს მხარეს გამოიყენეთ:

ტერმინალი
curl "https://test.hms.gen.tr/external/online/coupon/search" \
  -H "Authorization: Bearer $HMS_TOKEN" \
  -d "hotelID=1000" -d "coupon=SUMMER2026"
პასუხი · 200
{
    "success": true,
    "cupon": {
        "id": 12,
        "change": 0,
        "rate": "10.00"
    }
}

როცა change არის 0, rate პროცენტული ფასდაკლებაა (10%); როცა 1 — ფიქსირებული თანხა (10.00 სასტუმროს ვალუტაში). ფასდაკლება ოთახის თანხაზე გამოიყენეთ და ჯავშანში ფასდაკლებული ჯამები გაგზავნეთ.

დამატებითი სერვისების გასაყიდად აჩვენეთ პაკეტების სია. არჩეული პაკეტები ჯავშანში extras[] ველით იგზავნება, ხოლო პაკეტის idstockID ველში. კუპონებისა და პაკეტების შემდეგ მიღებული ჯამები ჯავშნის Total ველში იწერება.

4. გადახდის ეტაპი#

გამოიტანეთ გადახდის ტიპები, რომლებსაც სასტუმრო იღებს, და იმოქმედეთ სტუმრის არჩევანის მიხედვით. 10 ტიპისთვის (ონლაინ გადახდა) იწყება გადახდის სესია და სტუმარი პროვაიდერთან გადადის; გადახდის შემდეგ იგი თქვენს returnUrl მისამართზე ბრუნდება. ყველა ტიპი აღწერილია სახელმძღვანელოში გადახდის პროცესი.

5. ჯავშნის გადაცემა#

როცა გადახდის შედეგი ცნობილი გახდება, ჩაწერეთ ჯავშანი HMS-ში. ID თქვენ მიერ გენერირებული უნიკალური კოდია; იგივე კოდი სტუმარსაც მიაწოდეთ. ოთახისა და კვების ტიპების ID-ები ოთახების სიიდან მოდის.

მოთხოვნა
curl -X POST "https://test.hms.gen.tr/external/online/channel/booking" \
  -H "Authorization: Bearer $HMS_TOKEN" \
  -H "Content-Type: application/json" \
  -d @booking.json
პასუხი · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}

HMS_ID ჯავშნის ID-ია HMS-ში; შეინახეთ იგი თქვენს ჩანაწერთან ერთად. ჯავშანი პანელში „Online“ არხის ქვეშ გამოჩნდება, ხოლო HMS სტუმარს სასტუმროს პარამეტრების მიხედვით დადასტურების წერილს გაუგზავნის.

რამდენიმე ოთახი#

როცა ერთი და იმავე ოთახის ტიპისა და კვების ტიპის რამდენიმე ოთახი იყიდება, თითოეული ოთახი ცალკე RoomStays ელემენტია; NumberOfUnits პირველისთვის არის "1", მეორისთვის — "2" და ა.შ. სხვადასხვა ოთახის ტიპიც ცალკე ელემენტებად იგზავნება. ჯავშნის Total ყველა ოთახისა და დამატებითი სერვისის ჯამია.

ცვლილებები და გაუქმება#

ჯავშანი ხელახლა გაგზავნეთ იმავე ენდპოინტზე, იმავე ID მნიშვნელობით:

  • type: "Modify" — შეიცვალა თარიღები, ოთახები ან სტუმრის მონაცემები. გაგზავნეთ სრული ჯავშანი მისი მიმდინარე მდგომარეობით; HMS არსებულ ჩანაწერს მისით ჩაანაცვლებს.
  • type: "Cancel" — ჯავშანი გაუქმდა. ოთახებიც type: "Cancel" მნიშვნელობით იგზავნება.

გავრცელებული შეცდომები#

  • ოთახების სიის დიდი ხნით ქეშირება. ხელმისაწვდომობა და ტარიფები მუდმივად იცვლება; განაახლეთ სია, სანამ სტუმარი გადახდის ეტაპზე გადავა.
  • childCount მნიშვნელობის გაგზავნა, რომელიც childAges[] სიის სიგრძეს არ ემთხვევა: სერვერი ასაკების სიას ენდობა და ბავშვების რაოდენობას შეუმჩნევლად ცვლის.
  • საკუთარი ID-ების გაგზავნა roomTypeID / ratePlanID ველებში ოთახების სიიდან მიღებული ID-ების ნაცვლად: ბრუნდება Could not register.
  • PaymentCard ველის გაგზავნა 9-ისგან განსხვავებული გადახდის ტიპებისთვის: ბარათის მონაცემები HMS-ს ზედმეტად გადაეცემა.
  • ქსელის შეცდომის შემდეგ განმეორება სხვა ID მნიშვნელობით: ეს დუბლიკატ ჯავშანს ქმნის. გაიმეორეთ იმავე ID მნიშვნელობით.
ბოლო განახლება: 21 სექტემბერი, 2026იპოვეთ შეცდომა? შეგვატყობინეთ