एसिंक्रोनस बुकिंग जोड़ें

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

सिंक्रोनस बुकिंग उन्हें कहा जाता है, जिनकी पुष्टि हो चुकी है या जिन्हें अस्वीकार कर दिया गया है रीयल टाइम में.

एसिंक्रोनस बुकिंग उन्हें कहा जाता है, जिनमें व्यापारी/कंपनी/कारोबारी की तरफ़ से पुष्टि की जाती है या अस्वीकार कर दिया जाता है.

बुकिंग को सिंक्रोनस या एसिंक्रोनस के तौर पर उपलब्धता-लेवल. इसका मतलब यह भी है कि किसी दिए गए व्यापारी/कंपनी और सेवा के लिए, सिंक्रोनस और एसिंक्रोनस, दोनों तरह की उपलब्धता स्लॉट हो सकते हैं.

सही तरह से लागू करने के लिए, सबसे पहले यह पहचान करें कि कौनसी कैटगरी आपकी इन्वेंट्री इसके तहत आती है:

एसिंक्रोनस बुकिंग मानदंड

  • Actions Center में, एक साथ काम नहीं करने वाली बुकिंग में बदलाव करने का विकल्प नहीं है समर्थित हैं.
  • व्यापारियों या कंपनियों के पास, पार्टनर का ऑनलाइन सिस्टम (जैसे, रेस्टोरेंट का होस्ट पैनल). कॉल तय करें कि कारोबारी या कंपनी, बुकिंग को अस्वीकार कर सकता है. इसकी अनुमति नहीं है.
  • कारोबारी या कंपनी ने बुकिंग के नए समय का जो सुझाव दिया है वह इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने बुकिंग का अनुरोध उसी स्थिति में स्वीकार या अस्वीकार किया जाना चाहिए जिस तरह से बुकिंग की जा रही थी.

सिर्फ़ सिंक्रोनस बुकिंग की सुविधा चालू करना

स्टैंडर्ड तरीके से, सिंक करने की सुविधा के लिए डिफ़ॉल्ट रूप से बुकिंग की जाती है. कृपया सलाह लें ज़्यादा जानकारी के लिए, बुकिंग के लिए एंड-टू-एंड इंटिग्रेशन दस्तावेज़.

एसिंक्रोनस बुकिंग चालू करना

अगर कुछ या सभी कारोबारी या कंपनियां एसिंक्रोनस बुकिंग फ़्लो का इस्तेमाल करती हैं, तो ये बदलाव करने होंगे:

  • पुष्टि करने वाला मोड: अब स्लॉट की उपलब्धता की सभी जानकारी इसमें एक confirmation_mode फ़ील्ड होता है, जो बुकिंग करने के तरीके की जानकारी देता है के उपलब्ध स्लॉट की पुष्टि हो गई है. यह जानकारी दें इस तारीख के लिए, हर उपलब्ध स्लॉट का confirmation_mode फ़ॉलो किया जा रहा है:

    • उपलब्धता फ़ीड में, confirmation_mode के बारे में खरीदारी के लिए उपलब्धता का लेवल
    • बुकिंग सर्वर एपीआई के तरीकों में, confirmation_mode की जानकारी यहां दी गई है स्लॉट लेवल
    • रीयल-टाइम अपडेट एपीआई के तरीकों में, confirmation_mode की जानकारी दी गई है उपलब्धता के लेवल पर
  • बुकिंग की स्थिति: बुकिंग के बारे में सभी जानकारी में status फ़ील्ड में बुकिंग की स्थिति के बारे में पता चलता है. तीन बार नए एसिंक्रोनस स्थिति मान पेश किए गए हैं: PENDING_CONFIRMATION, DECLINED_BY_MERCHANT और FAILED. इन नए स्थिति मानों का इस्तेमाल तब करें, जब क्रिएशन को प्रोसेस करने, उन्हें अस्वीकार करने, और एसिंक्रोनस बुकिंग के पूरा न होने जैसी समस्याएं हो सकती हैं.
  • बुकिंग अपडेट: बुकिंग की रिपोर्ट, बुकिंग सूचना एपीआई के bookings.patch तरीका का इस्तेमाल करें.

नीचे दिया गया डायग्राम दिखाता है कि पुष्टि करने वाले मोड और बुकिंग के स्टेटस का इस्तेमाल कैसे किया जाता है एक सामान्य एसिंक्रोनस बुकिंग इंटरैक्शन में.

पहली इमेज: एसिंक्रोनस बुकिंग फ़्लो
पहली इमेज: एसिंक्रोनस बुकिंग फ़्लो
  1. उपलब्धता फ़ीड अपडेट कर दी गई है, ताकि हर उपलब्धता स्लॉट की पुष्टि मोड मौजूद है. यह जानकारी होना ज़रूरी है कि ताकि हम बुकिंग की एसिंक्रोनस प्रकृति के बारे में समझा सकें उपयोगकर्ता को शुरुआत में ही प्रोसेस करना.
  2. टास्क कब शुरू होगा BatchAvailabilityLookup या CheckAvailability तो हम पुष्टि करने वाले मोड को पास करते हैं. आम तौर पर, पुष्टि करने वाले मोड को ही वापस किया गया. इससे यह पक्का किया जाता है कि उपयोगकर्ता को सही मैसेज दिखाया जाए.
  3. टास्क कब शुरू होगा CreateBooking तो हम पुष्टि करने वाले मोड का इस्तेमाल करके अनुमानित पुष्टि मोड को दिखाता है. जब एसिंक्रोनस बुकिंग अनुरोध सबमिट कर दिया जाता है, तो बुकिंग की स्थिति के साथ बुकिंग वापस मिल जाती है PENDING_MERCHANT_CONFIRMATION.
  4. जब व्यापारी/कंपनी/कारोबारी किसी बुकिंग का अनुरोध स्वीकार या अस्वीकार करता है, तो बुकिंग स्टेटस को रीयल-टाइम अपडेट के तौर पर, बुकिंग की सूचना एपीआई के ज़रिए अपडेट किया जाता है bookings.patch तरीका का इस्तेमाल करके सबमिट किया जा सकता है. अगर आपको ऐसी बुकिंग अपने-आप अस्वीकार करनी हैं जो का जवाब समय पर देते हैं, तो उसी रीयल-टाइम अपडेट के ज़रिए ऐसा करें. तरीका.

खरीदारी के लिए उपलब्धता फ़ीड

उपलब्धता फ़ीड में बताएं कि हर स्लॉट सिंक्रोनस है या नहीं या एसिंक्रोनस. ऐसा करने के लिए, नया confirmation_mode सेट करें फ़ील्ड में डालें.

// Mode by which bookings for an availability slot are confirmed.
enum ConfirmationMode {
  // The confirmation mode was not specified.
  // Synchronous confirmation will be assumed.
  CONFIRMATION_MODE_UNSPECIFIED = 0;

  // Bookings for this availability will be confirmed synchronously.
  CONFIRMATION_MODE_SYNCHRONOUS = 1;

  // Bookings for this availability will be confirmed asynchronously.
  CONFIRMATION_MODE_ASYNCHRONOUS = 2;
}

हालांकि, अगर ऐसा कोई मोड नहीं है, तो पुष्टि मोड को सिंक्रोनस माना जाता है कहा जाता है, तो यह सलाह दी जाती है कि हम साफ़ तौर पर कोई मोड डालें, क्योंकि जो गलती से होने वाली चूक से संबंधित किसी भी तरह के भ्रम को दूर करता है.

Async

{
  "availability": [
    {
      "merchant_id": "10001",
      "service_id": "1000",
      "spots_open": 3,
      "spots_total": 3,
      "duration_sec": 3600,
      "start_sec": 1535806800,
      "resources": {
        "party_size": 4
      },
      "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS"
    }
  ]
}

सिंक करें

{
  "availability": [
    {
      "merchant_id": "10001",
      "service_id": "1000",
      "spots_open": 3,
      "spots_total": 3,
      "duration_sec": 3600,
      "start_sec": 1535806800,
      "resources": {
        "party_size": 4
      },
      "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"
    }
  ]
}

एक साथ काम नहीं करने वाली प्रोसेस और सिंक की सुविधा

{
  "availability": [
    {
      "merchant_id": "10001",
      "service_id": "1000",
      "spots_open": 3,
      "spots_total": 3,
      "duration_sec": 3600,
      "start_sec": 1535806800,
      "resources": {
        "party_size": 4
      },
      "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"
    },
    {
      "merchant_id": "10002",
      "service_id": "1000",
      "spots_open": 4,
      "spots_total": 4,
      "duration_sec": 3600,
      "start_sec": 1535806800,
      "resources": {
        "party_size": 2
      },
      "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS"
    }

  ]
}

बुकिंग सर्वर

BatchAvailability लुकअप या CheckAvailability

इस BatchAvailabilityLookupResponse (BAL) या CheckAvailabilityResponse (CA), वही confirmation_mode दिखाता है जो इसमें बताया गया है उपलब्धता फ़ीड और BatchAvailabilityLookupRequest या CheckAvailabilityRequest.

BAL-Async

{
  "slot_time_availability": [
    {
      "slot_time": {
        "duration_sec": "3600",
        "resource_ids": {
          "party_size": 3
        },
        "service_id": "1000",
        "start_sec": "1546458300",
        "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS"
      },
      "available": true
    }
  ]
}

BAL-सिंक

{
  "slot_time_availability": [
    {
      "slot_time": {
        "duration_sec": "3600",
        "resource_ids": {
          "party_size": 3
        },
        "service_id": "1000",
        "start_sec": "1546458300",
        "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"
      },
      "available": true
    }
  ]
}

CA-Async

{
  "slot": {
    "duration_sec": "3600",
    "merchant_id": "317652",
    "resources": {
      "party_size": 3
    },
    "service_id": "1000",
    "start_sec": "1546458300",
    "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS"
  },
  "count_available": 1,
  "duration_requirement": "DO_NOT_SHOW_DURATION"
}

CA-सिंक

{
  "slot": {
    "duration_sec": "3600",
    "merchant_id": "317652",
    "resources": {
      "party_size": 3
    },
    "service_id": "1000",
    "start_sec": "1546458300",
    "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"
  },
  "count_available": 1,
  "duration_requirement": "DO_NOT_SHOW_DURATION"
}

CreateBooking

पक्का करें कि उपलब्ध विकल्प का इस्तेमाल करके बुकिंग की सही स्थिति दी गई हो ये विकल्प देखें:

// Status of a booking.
//
// Updating booking status does not change the status of the associated payment.
// Prepayment status updates should be done using the PrepaymentStatus enum.
enum BookingStatus {
  // Not specified.
  BOOKING_STATUS_UNSPECIFIED = 0;

  // Booking has been confirmed
  CONFIRMED = 1;

  // Booking is awaiting confirmation by the merchant before it can transition
  // into CONFIRMED status. Only applicable to non-payments Dining or
  // Beauty verticals.
  PENDING_MERCHANT_CONFIRMATION = 2;

  // Booking has been canceled on behalf of the user.
  // The merchant can still trigger a manual refund.
  CANCELED = 3;

  // User did not show for the appointment
  NO_SHOW = 4;

  // User did not show for the appointment in violation of the cancellation
  // policy.
  NO_SHOW_PENALIZED = 5;

  // Booking could not be completed by the async backend due to a failure.
  FAILED = 6;

  // Booking was asynchronously declined by the merchant. Only applicable to
  // non-payments Dining or Beauty verticals.
  DECLINED_BY_MERCHANT = 7;
}

CreateBookingResponse में, दिए गए बुकिंग के एग्रीगेट किए गए स्लॉट के लिए, मौजूदा confirmation_mode दिखाएं के विकल्प को चुनें. इसके अलावा, जब बुकिंग एसिंक्रोनस होती है, status को PENDING_MERCHANT_CONFIRMATION पर सेट करें. कृपया पक्का करें कि confirmation_mode का मतलब है कि उपयोगकर्ता और किस चीज़ से रिज़र्व है Google यह उम्मीद करता है कि उपयोगकर्ता को कोई भ्रम नहीं होगा.

Async

{
  "booking": {
    "slot": {
      "duration_sec": "3600",
      "merchant_id": "100001",
      "resources": {
        "party_size": 2
      },
      "service_id": "1000",
      "start_sec": "1546647234",
      "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS"
    },
    "user_information": {
      "email": "johnsmith@gmail.com",
      "family_name": "John",
      "given_name": "Smith",
      "telephone": "+1 800-123-4567",
      "user_id": "2017492857928759285"
    },
    "payment_information": {
      "prepayment_status": "PREPAYMENT_NOT_PROVIDED"
    },
    "status": "PENDING_MERCHANT_CONFIRMATION"
  }
}

सिंक करें

{
  "booking": {
    "slot": {
      "duration_sec": "3600",
      "merchant_id": "100001",
      "resources": {
        "party_size": 2
      },
      "service_id": "1000",
      "start_sec": "1546647234",
      "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"
    },
    "user_information": {
      "email": "johnsmith@gmail.com",
      "family_name": "John",
      "given_name": "Smith",
      "telephone": "+1 800-123-4567",
      "user_id": "2017492857928759285"
    },
    "payment_information": {
      "prepayment_status": "PREPAYMENT_NOT_PROVIDED"
    },
    "status": "CONFIRMED"
  }
}

UpdateBooking

एक साथ काम नहीं करने वाली सुविधा की शुरुआती रिलीज़ में, उपयोगकर्ता ने मौजूदा बुकिंग में बदलाव किए समर्थित नहीं हैं. इसके बजाय, उपयोगकर्ता को बुकिंग रद्द कर देनी चाहिए और नई बुकिंग.

रीयल-टाइम अपडेट

उपलब्धता के रीयल-टाइम अपडेट के लिए, confirmation_mode दर्ज होना चाहिए. यह इन तरीकों पर लागू होता है:

इन्वेंट्री RTU (REPLACEServiceAvailability या BatchREPLACEServiceAvailability)

इसका इस्तेमाल किया जा रहा है availability.replace (बैच) का तरीका या services.availability.replace तरीका, Availability में confirmation_mode को CONFIRMATION_MODE_ASYNCHRONOUS पर सेट करें

Async

{
  "extendedServiceAvailability": [
    {
      "merchantId": "1001",
      "serviceId": "12310",
      "startTimeRestrict": "2014-10-02T15:01:23.045123456Z",
      "endTimeRestrict": "2014-10-02T19:01:23.045123456Z",
      "availability": [
        {
          "startTime": "2014-10-02T15:30:00.00Z",
          "duration": "3600s",
          "spotsOpen": "0",
          "spotsTotal": "2",
          "availabilityTag": "1000001",
          "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS"
        }
      ]
    }
  ]
}

सिंक करें

{
  "extendedServiceAvailability": [
    {
      "merchantId": "1001",
      "serviceId": "12310",
      "startTimeRestrict": "2014-10-02T15:01:23.045123456Z",
      "endTimeRestrict": "2014-10-02T19:01:23.045123456Z",
      "availability": [
        {
          "startTime": "2014-10-02T15:30:00.00Z",
          "duration": "3600s",
          "spotsOpen": "0",
          "spotsTotal": "2",
          "availabilityTag": "1000001",
          "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"
        }
      ]
    }
  ]
}

एक साथ काम नहीं करने वाली प्रोसेस और सिंक की सुविधा

{
  "extendedServiceAvailability": [
    {
      "merchantId": "1001",
      "serviceId": "12310",
      "startTimeRestrict": "2014-10-02T15:01:23.045123456Z",
      "endTimeRestrict": "2014-10-02T19:01:23.045123456Z",
      "availability": [
        {
          "startTime": "2014-10-02T15:30:00.00Z",
          "duration": "3600s",
          "spotsOpen": "0",
          "spotsTotal": "2",
          "availabilityTag": "1000001",
          "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS"
        },
        {
          "startTime": "2014-10-03T11:00:00.00Z",
          "duration": "5400s",
          "spotsOpen": "1",
          "spotsTotal": "1",
          "availabilityTag": "1000002",
          "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS"
        }
      ]
    }
  ]
}

बुकिंग की सूचना का एपीआई

बुकिंग की स्थिति में एसिंक्रोनस अपडेट, बुकिंग के ज़रिए किए जाने चाहिए सूचना एपीआई bookings.patch तरीका.

स्थिति अपडेट करते समय, status फ़ील्ड नाम को updateMask.

स्थिति ब्यौरा
पुष्टि हो गई कारोबारी ने बुकिंग की पुष्टि कर दी है
नहीं हो सका पार्टनर, व्यापारी/कंपनी के साथ बुकिंग की पुष्टि या अस्वीकार नहीं कर सका
DECLINED_BY_MERCHANT व्यापारी ने बुकिंग अस्वीकार कर दी
Request:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status

Body:
{"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"DECLINED_BY_MERCHANT"}

अगर बुकिंग नहीं हो पाती है, तो बुकिंग की स्थिति को FAILED पर सेट करें और delivery_failure की जानकारी दें. अगर स्थिति किसी अन्य पर सेट है, तो booking_failure को अनदेखा किया जाता है.

Request:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status&booking_failure.cause="SLOT_UNAVAILABLE"

Body:
{"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"FAILED"}

ईमेल सूचनाएं

एसिंक्रोनस बुकिंग के लिए, पांच ईमेल मिलते हैं जो लोगों को भेजी गई बुकिंग की स्थिति.

  • PENDING_MERCHANT_CONFIRMATION
  • CONFIRMED
  • DECLINED_BY_MERCHANT
  • FAILED
  • CANCELED