پرداخت

روش‌های پرداختی را که هتل برای رزرو آنلاین می‌پذیرد فهرست می‌کند و مرحله پرداخت را برای روش انتخاب‌شده آغاز می‌کند. کارهای لازم برای هر روش در راهنمای جریان پرداخت شرح داده شده است.

فهرست روش‌های پرداخت#

GET/external/online/payment/type

احراز هویت: Authorization: Bearer

روش‌های پرداختی را که هتل برای فروش آنلاین فعال کرده است برمی‌گرداند. شناسه‌های ثابت روش‌ها: 1 پرداخت در هتل، 3 انتقال بانکی، 9 کارت اعتباری (اطلاعات کارت همراه رزرو ارسال می‌شود)، 10 پرداخت آنلاین (درگاه پرداخت).

پارامترهای کوئری

hotelIDintegerالزامی
شناسه هتل.

پاسخ

200 موفق.

درخواست
curl "https://test.hms.gen.tr/external/online/payment/type?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
پاسخ · 200
{
    "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
        }
    ]
}

اطلاعات درگاه پرداخت#

GET/external/payment/company

احراز هویت: Authorization: Bearer

ارائه‌دهنده درگاه پرداخت هتل و اطلاعات پذیرنده را برمی‌گرداند. فقط زمانی لازم است که بخواهید ارائه‌دهنده را مستقیماً در سمت خودتان یکپارچه کنید؛ جریان استاندارد از POST …/payment/type/10 استفاده می‌کند. پاسخ حاوی اطلاعات محرمانه است؛ آن را فقط سمت سرور نگه دارید.

پارامترهای کوئری

hotelIDintegerالزامی
شناسه هتل.

پاسخ

200 موفق.

پاسخ‌های خطا

  • 200 hotel_company_info_could_not_found — هیچ درگاه پرداختی برای هتل پیکربندی نشده است.
درخواست
curl "https://test.hms.gen.tr/external/payment/company?hotelID=1000" \
  -H "Authorization: Bearer $HMS_TOKEN"
پاسخ · 200
{
    "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"
    }
}

شروع مرحله پرداخت#

POST/external/online/payment/type/{paymentType}

احراز هویت: Authorization: Bearer · بدنه: application/json

کاری را که برای روش پرداخت انتخاب‌شده باید انجام شود برمی‌گرداند. روش‌های 1 و 9 فقط به hotelID نیاز دارند؛ روش 3 حساب‌های بانکی را فهرست می‌کند؛ برای روش 10، پرداخت با اطلاعات مهمان و سبد خرید آغاز می‌شود و code بازگشتی (HTML) در صفحه مهمان رندر می‌شود تا او به صفحه پرداخت ارائه‌دهنده منتقل شود.

پارامترهای مسیر

paymentTypeintegerالزامی
شناسه روش پرداخت.
13910

بدنه درخواست

hotelIDintegerالزامی
شناسه هتل.
totalPricedecimal
برای روش 10 الزامی است. مبلغ کل قابل دریافت.
orderIDstring
برای روش 10 الزامی است. شماره سفارش/رزرو شما.
returnUrlstring
برای روش 10 الزامی است. آدرسی که مهمان پس از پرداخت به آن بازمی‌گردد.
name / surname / email / phonestring
برای روش 10 الزامی است. اطلاعات پرداخت‌کننده.
city / addressstring
برای روش 10 الزامی است. آدرس صورت‌حساب.
countryIDinteger
برای روش 10 الزامی است. id از فهرست کشورها.
baskets[]object[]
برای روش 10 الزامی است، دست‌کم یک آیتم. هر آیتم: id، name، piece، price.

پاسخ

200 روش 10: code یک قطعه HTML است که مهمان را به ارائه‌دهنده پرداخت منتقل می‌کند (بسته به ارائه‌دهنده، فرمی با ارسال خودکار، اسکریپت window.location یا فرم پرداخت تعبیه‌شده). آن را بدون تغییر در مرورگر مهمان رندر کنید. برای روش‌های دیگر، فیلد message کار لازم را مشخص می‌کند.

پاسخ‌های خطا

  • 200 required_input_info_not_submitted (+ errors[]) — فیلدی برای روش 10 ارسال نشده است؛ country_info_sent_incorrectlycountryID نامعتبر است؛ 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
        }
    ]
}'
پاسخ · 200
{
    "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>"
}
پاسخ · 200 (روش 3، انتقال بانکی)
{
    "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"
        }
    ]
}
پاسخ · 200 (روش 1 / روش 9)
{
    "success": true,
    "message": "credit_card_info_should_be_requested"
}
آخرین به‌روزرسانی: 21 سپتامبر 2026اشتباهی دیدید؟ به ما اطلاع دهید