تخطَّ إلى المحتوى

المدفوعات الوكيلة

يمكنك البحث عن فندق، اختيار غرفة وإتمام الحجز من خلال وكيل الذكاء الاصطناعي الخاص بك. اربطه بـ Wink ومحفظة دفع، ثم أخبره بالمكان الذي تريد الإقامة فيه. يستخدم Wink بروتوكول المدفوعات الآلية (MPP) لقبول دفع المحفظة وإرجاع تأكيد الحجز الخاص بك.

لإتمام تدفق الحجز الكامل، يحتاج وكيلك إلى محرك حجز Wink ومحفظة دفع.

الاتصالما يفعلهكيفية إضافته
محرك حجز Wink — مطلوبيعثر على الوجهات، يبحث عن الفنادق وأسعار الغرف، يقدم عروض الأسعار ويؤكد الحجوزات، ويسترجع حجوزاتك وإيصالاتك.أضف https://api.wink.travel/mcp/booking-engine كخادم MCP HTTP عن بُعد.
محفظة الدفع — مطلوبة للدفعتوفر بيانات اعتماد الدفع بعد موافقتك على الشراء.اربط محفظة تدعم رموز الدفع المشتركة من Stripe. انظر المثال الخاص بـ Link أدناه.
مرجع Wink — اختيارييبحث عن الدول والعملات وبيانات مرجعية أخرى.https://api.wink.travel/mcp/reference
وثائق Wink — اختياريتساعد وكيلك على قراءة الوثائق وعقود API.https://docs.mcp.wink.travel/mcp

يتضمن محرك الحجز MCP بالفعل الأدوات اللازمة لتدفق حجز المسافر، عندما يتم تمكين الحجز والدفع الوكيلين لذلك البيئة. MCP الدفع المنفصل من Wink مخصص للعمليات المالية مثل دفاتر الحسابات والسحوبات؛ ولا حاجة له لدفع ثمن الغرفة.

تسجيل الدخول واختيار الأذونات

Section titled “تسجيل الدخول واختيار الأذونات”
  1. افتح إعدادات MCP أو الموصل الخاص بوكيلك وأضف عنوان URL لمحرك الحجز أعلاه. امنحه اسمًا مثل Wink Booking.
  2. يفتح وكيلك صفحة تسجيل الدخول إلى Wink في متصفحك. سجّل الدخول باستخدام حساب Wink الذي تريد الحجز من خلاله.
  3. في شاشة الموافقة، اختر الأذونات التي يحتاجها وكيلك، ثم وافق على الاتصال.
  4. عد إلى وكيلك. يقوم بتحميل الأدوات المتاحة ويدير المصادقة لمكالمات MCP التالية.

لهذا التدفق، اختر:

الإذنسبب الحاجة إليه
وصول وكيل الذكاء الاصطناعي (mcp.read)يسمح لوكيلك بالاتصال بـ Wink MCP.
قراءة التسويق (marketing.read)يتيح للوكيل العثور على تكوين الحجز الخاص بحسابك، المسمى التخصيص. يجب أن يكون لحسابك أيضًا حق الوصول إلى هذا التكوين.
كتابة الدفع (payment.write)يتيح للوكيل دفع العرض وتأكيد الحجز.

احتفظ بالأذونات المطلوبة عند تسجيل الدخول التي يطلبها الاتصال. يتولى عميل MCP الخاص بك إدارة رموز الوصول؛ لا تحتاج إلى نسخ رمز في الدردشة أو تعيين رؤوس الطلب. إذا تخطيت إذنًا مطلوبًا، أعد الاتصال عبر تدفق تسجيل الدخول الخاص بالعميل ووافق عليه.

للدفع عبر Stripe، أحد الخيارات هو محفظة وكيل Link. إذا كان عميلك يدعم خوادم MCP المحلية وتم تثبيت Node.js، أضف هذا الإدخال إلى تكوين MCP الخاص به:

{
"mcpServers": {
"link": {
"command": "npx",
"args": ["@stripe/link-cli", "--mcp"]
}
}
}

اطلب من وكيلك ربط حساب Link الخاص بك، ثم اتبع رابط التحقق الذي يقدمه ووافق على الاتصال. توفر Link رمز الدفع المشترك المستخدم لدفع الحجز. تدعم Link حاليًا الحسابات الأمريكية؛ تحقق من حدود الإنفاق قبل الحجز. انظر دليل إعداد Link وتكوين MCP.

إذا كان لدى وكيلك محفظة متوافقة متصلة بالفعل، استخدم ذلك الاتصال. إعداد المحفظة والموافقة على الدفع منفصلان عن تسجيل الدخول إلى Wink.

2. اطلب من وكيلك العثور على غرفة

Section titled “2. اطلب من وكيلك العثور على غرفة”

على سبيل المثال:

ابحث عن غرفة في بانكوك لشخصين بالغين من 15 إلى 17 يناير 2027. أرني الخيارات المتاحة، السعر الإجمالي وشروط الإلغاء قبل أن أختار.

يمكن لوكيلك العثور على حسابات Wink التي يمكنك الوصول إليها وتكوينات الحجز الخاصة بها. إذا كان لديك عدة حسابات، أخبره أيها يستخدم. إذا كنت تحجز عبر رابط حجز أو تكوين مزود، أعطه ذلك للوكيل بدلاً من ذلك.

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

يدعم تدفق الدفع هذا حاليًا غرفة واحدة، مسعرة بالدولار الأمريكي، للبالغين فقط. يحتوي العرض على وقت انتهاء صلاحية. طلب عرض لا يخصم منك أو يؤكد الحجز.

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

توفر المحفظة رمز دفع مشترك من Stripe لدفع العرض.

مدفوعات العملة المستقرة Tempo قادمة قريبًا.

بعد نجاح الدفع، يعطيك وكيلك رمز تأكيد الحجز. يمكنه أيضًا استرجاع تفاصيل الحجز والإيصال عبر محرك الحجز MCP.

إذا كان الدفع لا يزال قيد المعالجة أو فقد الرد، دع الوكيل يتحقق من نفس محاولة الدفع. يجب أن يعيد استخدام العرض وبيانات الاعتماد بدلاً من بدء دفع ثانٍ. إذا تم رفض الدفع، اطلب عرضًا جديدًا وراجعه قبل المحاولة مرة أخرى.

مرجع الأدوات للوكلاء والمطورين

Section titled “مرجع الأدوات للوكلاء والمطورين”

جميع أدوات Wink أدناه متاحة عبر محرك الحجز MCP. يرسل عميل MCP المصادقة تلقائيًا باستخدام الأذونات التي تمت الموافقة عليها أثناء تسجيل الدخول.

الخطوةالأدوات والسلوك
اختيار سياق الحجزmanaging_entity_list، ثم customization_get_primary أو customization_search للحساب المختار. استخدم تخصيصًا مزودًا إذا كان معروفًا مسبقًا.
البحث عن وجهةdestination_lookup_search_suggestions و destination_lookup_get.
البحث عن الفنادق والغرفinventory_search_city أو inventory_search_geo، ثم property_inventory_get للأسعار والتوافر.
اقتباس الغرفة المختارةagentic_booking_quote. مرر تفاصيل الغرفة داخل وسيط request.
الدفع والتأكيداحصل على رمز دفع مشترك من المحفظة المتصلة، ثم استدعِ agentic_booking_pay مع request.quoteId و request.spt. احتفظ بنفس مستخدم Wink المسجل للدخول للعرض والدفع.
استرجاع الحجز والإيصالاستخدم booking_search أو booking_search_list للعثور على الحجز المؤكد، ثم booking_get و booking_receipt_get باستخدام معرف الحجز.

يحتاج طلب العرض إلى hotelIdentifier، roomRateIdentifier، checkIn، checkOut، adults، children و customizationIdentifier. تستخدم التواريخ تنسيق YYYY-MM-DD؛ يجب أن يكون checkOut بعد checkIn. عيّن adults إلى 1 على الأقل وchildren إلى 0.

يعيد العرض quoteId، amountUsdCents، currency، expiresAt و mppChallenges. اعرض سنتات الدولار الأمريكي كدولارات: 10000 تعني 100.00$.

نتيجة الدفعالخطوة التالية
PAYMENT_SUCCEEDEDاحفظ bookingConfirmationCode و chargeReference.
IN_PROGRESSانتظر قليلاً وأعد محاولة نفس العرض وبيانات الاعتماد.
DECLINEDاطلب عرضًا جديدًا وراجعه قبل محاولة دفع أخرى.

تعيد المحاولة الناجحة الحجز الموجود دون فرض رسوم مرة أخرى. اعتبر انتهاء المهلة نتيجة غير معروفة وأعد محاولة نفس الدفع. إذا بقيت غير محلولة، اتصل بالدعم مع معرف العرض.

عملاء MCP المدركون للدفع

Section titled “عملاء MCP المدركون للدفع”

يمكن لعملاء MCP المدركين للدفع استخدام agentic_booking_book مع حقول الغرفة مباشرة في arguments. تعيد المكالمة الأولى الخطأ -32042 مع تحديات الدفع. أعد محاولة نفس المكالمة مع بيانات اعتماد المحفظة في params._meta["org.paymentauth/credential"]؛ النجاح يتضمن result._meta["org.paymentauth/receipt"]. يحمل الخطأ -32043 فشلًا في الدفع وتحديًا: الرفض النهائي يحتاج إلى عرض جديد، بينما يمكن إعادة محاولة حمولة دفع غير مكتملة مع نفس التحدي. بالنسبة لـ -32603، تعني data.failure.reason بقيم payment-in-progress أو already-consumed إعادة محاولة نفس بيانات الاعتماد؛ رمز الخطأ وحده غير كافٍ.

استخدم REST عند بناء تكامل يستدعي Wink مباشرة عبر HTTP. يستخدم كل من العرض والدفع POST https://api.wink.travel/api/mpp/booking.

تحتاج تطبيقك إلى رمز وصول مستخدم Wink مع إذن payment.write للدفع. احتفظ بنفس المستخدم لكلا المكالمتين. أرسل الرمز في Wink-Authorization، مع ترك Authorization متاحًا لبيانات اعتماد دفع المحفظة. تنطبق هذه الرؤوس على REST؛ يدير عميل MCP مصادقة خاصة به.

احفظ الغرفة المختارة كـ booking.json، مع استبدال معرفات المثال والتواريخ باختيارك. تذهب حقول الغرفة مباشرة في جسم JSON، بدون غلاف request.

{
"hotelIdentifier": "YOUR_HOTEL_ID",
"roomRateIdentifier": "YOUR_ROOM_RATE_ID",
"checkIn": "2027-01-15",
"checkOut": "2027-01-17",
"adults": 2,
"children": 0,
"customizationIdentifier": "YOUR_CUSTOMIZATION_ID"
}

عيّن WINK_ACCESS_TOKEN إلى رمز وصول المستخدم وأرسل الطلب:

نافذة طرفيّة
curl -i https://api.wink.travel/api/mpp/booking \
-H "Wink-Authorization: Bearer $WINK_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
--data-binary @booking.json

يرد Wink بـ 402 Payment Required مع تحدي WWW-Authenticate: Payment ... لكل طريقة معروضة. يتضمن جسم JSON quoteId، amount، currency، expiresAt و methods. هنا، amount هو سلسلة بالسنتات الأمريكية: "10000" تعني 100.00$. راجع العرض قبل انتهاء صلاحيته؛ لم يتم تحصيل أي دفعة بعد.

اجعل المحفظة تنفذ تحدي Stripe المعاد بإمداد رمز دفع مشترك في payload.spt. استخدم تفاصيل الدفع من ذلك التحدي.

عيّن MPP_CREDENTIAL إلى بيانات اعتماد MCP المشفرة للمحفظة، التي تحتوي على التحدي وحمولة الدفع. أعد محاولة نفس جسم الطلب، مع الاحتفاظ برأس الهوية:

نافذة طرفيّة
curl -i https://api.wink.travel/api/mpp/booking \
-H "Wink-Authorization: Bearer $WINK_ACCESS_TOKEN" \
-H "Authorization: Payment $MPP_CREDENTIAL" \
-H 'Content-Type: application/json' \
--data-binary @booking.json

عند النجاح، يعيد Wink 200 OK، وجسم JSON يحتوي على bookingConfirmationCode، ورأس Payment-Receipt. احفظ التأكيد والإيصال. تعيد المحاولة الناجحة الحجز الموجود دون فرض رسوم مرة أخرى.

التعامل مع الردود والمحاولات المتكررة

Section titled “التعامل مع الردود والمحاولات المتكررة”
الردما يجب فعله
400صحح تفاصيل الغرفة غير الصالحة أو بيانات الاعتماد المشوهة.
401 / 403تحقق من مصادقة المستخدم وإذن الدفع.
402افحص المشكلة والتحدي المعاد. الرفض النهائي للدفع يحصل على عرض جديد؛ حمولة دفع غير مكتملة تعيد استخدام التحدي الأصلي. راجع السعر قبل الدفع.
409نتيجة الدفع غير محسومة. انتظر قليلاً، ثم أعد محاولة نفس الجسم وبيانات الاعتماد عند نقطة الحجز.
429انتظر عدد الثواني في Retry-After، ثم أعد المحاولة.

يحتوي رد 409 على جسم application/problem+json. طابق نوعه type مع هذه الروابط الدقيقة:

نوع المشكلةالمعنى
https://api.wink.travel/problems/payment-in-progressمحاولة الدفع لا تزال جارية أو لا يمكن تأكيد التسوية بعد.
https://api.wink.travel/problems/already-consumedتم استخدام التحدي أو إثبات الدفع بالفعل بمحاولة ربما ناجحة. هذا وحده لا يؤكد الحجز.

كلاهما يعني أعد محاولة نفس الدفع؛ لا تدفع عرضًا جديدًا. تحدد الروابط المشكلة وتوثقها؛ ليست نقاط نهاية للدفع أو الاستطلاع. أعد محاولة POST /api/mpp/booking، واستخدم نوع المشكلة type بدلاً من النص الحر detail لاتخاذ القرار. انظر مرجع نوع المشكلة لجميع مشاكل دفع Wink.

يمكن أن يؤدي انتهاء المهلة، فقدان الرد أو خطأ الخادم بعد تقديم الدفع أيضًا إلى ترك النتيجة مجهولة. أعد محاولة نفس طلب الدفع. إذا بقيت النتيجة غير محسومة، اتصل بالدعم مع معرف العرض قبل بدء دفع آخر.