الدفع

تعرض أنواع الدفع التي يقبلها الفندق للحجوزات عبر الإنترنت، وتبدأ خطوة الدفع للنوع المختار. يشرح دليل مسار الدفع ما يلزم لكل نوع.

عرض أنواع الدفع#

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. عنوان URL الذي يعود إليه النزيل بعد الدفع.
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_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
        }
    ]
}'
الاستجابة · 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هل وجدت خطأً؟ أخبرنا