תבניות URL להפניה אוטומטית של תשלום

אחרי שהמשתמש יבצע הזמנה של זמן זמינות במחיר ספציפי, הוא יועבר לדף ההזמנות שלכם באמצעות כתובת URL שתגדירו. השלבים תספקו הסבר איך לבצע את הפעולות הבאות:

  1. מגדירים את תבנית כתובת ה-URL.
  2. מגדירים את תבנית כתובת ה-URL בפידים.
  3. מפעילים קישורים יוצאים לכל חריץ זמינות.
  4. מאמתים את השדות במרכז הפעולות.

1. הגדרת התבנית של כתובת ה-URL

תבנית ה-URI תואמת לכוח המשימה הנדסי באינטרנט (IETF) RFC6570 מפרט תבניות Uri ברמה 2. פרטים נוספים זמינים בכתובת datatracker.ietf.org. אתם מגדירים את כתובת ה-URL עם פרמטרים שמאוכלסים באופן דינמי במידע שקשור להזמנה. הטבלה הבאה כוללת פרמטרים נדרשים ופרמטרים אופציונליים שזמינים לתבנית ה-URI שלך.

`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`

ערכים זמינים לתבנית של כתובת ה-URL

פרמטרים של תבנית חובה / אופציונלי פיד שדה ערך לדוגמה
availability_slot_start_seconds חובה זמינות start_sec 4152695841
resources_party_size חובה availability.resources party_size 2
availability_slot_availability_tag אופציונלי זמינות availability_tag res-123
availability_slot_duration_seconds אופציונלי זמינות duration_sec 3600
resources_room_id אופציונלי availability.resources room_id bar_123

2. מגדירים את תבנית ה-URI בפיד.

בקטע הבא נניח שיש לכם אינטגרציה פעילה מקצה לקצה עם פיד שירות קיים. כתובת ה-URL שהגדרתם תוגדר פיד שירות, כוללת את ההגדרה של השדה הזה.

message Service {
  // ..
  UriTemplate uri_template = 38;
}

הגדרת תבנית URI

// A template specifying how Google should generate URLs to external site.
message UriTemplate {
  // The uri template must follow the RFC6570, see
  // https://datatracker.ietf.org/doc/html/rfc6570.
  // Supports Level 2 templates.
  // These parameters will be resolved to their values specified in their
  // respective entities.
  //
  // 5 available parameters for Dining Reservation Linkout:
  // 1) (required) {availability_slot_start_seconds} :: populated from start_sec
  //   field in availability feed
  // 2) (required) {availability_slot_duration_seconds} :: populated from
  //   duration_sec field in availability feed
  // 3) (optional) {resources_party_size} :: populated from party_size field in
  //   availability feed
  // 4) (optional) {availability_availability_tag} :: populated from
  //   availability_tag field in availability feed
  // 5) (optional) {resources_room_id} :: populated from room_id field in
  //   availability feed
  //
  // Example usage:
  // http://example.com/book/restaurant?start={availability_slot_start_seconds}
  // &num_guests={resources_party_size}
  // * start_sec = 123456
  // * party_size = 2
  // https://example.com/book/restaurant?start=123456&num_guests=2
  string uri_template = 1;
}

הגדרת דוגמה לשירות

{
  "metadata": {
    "processing_instruction": "PROCESS_AS_COMPLETE",
    "shard_number": 0,
    "total_shards": 1,
    "nonce": "12484913",
    "generation_timestamp": 1530432018
  },
  "service": [
    {
      "merchant_id": "dining-A",
      "service_id": "reservation",
      "uri_template": {
        "uri_template": "https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}"
      },
      "localized_service_name": {
        "value": "Reservation",
        "localized_value": [
          {
            "locale": "en",
            "value": "Reservation"
          }
        ]
      }
    }
  ]
}

בקטע הבא נניח שיש לכם אינטגרציה פעילה מקצה לקצה עם פיד זמינות קיים. אחרי שתגדירו את תבנית כתובת ה-URL בפיד השירות, תצטרכו לציין אילו משבצות זמינות יידרשו ליצירת קישורים.

כדי לעשות זאת, מוסיפים את השדה linkout_required_reason עם הערך PAYMENT_REQUIRED.

ההגדרה של סיבת הקישור

message Availability {
  // ..
  LinkoutRequiredReason linkout_required_reason = 19;
}
  // The reason why a slot requires a linkout. Currently only used for Dining
  // Reservations Payment Redirect Partners.
  enum LinkoutRequiredReason {
    // Default value: Do not use, equates to unknown.
    LINKOUT_REQUIRED_REASON_UNSPECIFIED = 0;
    // Slot requires payment in the partner platform to be booked.
    PAYMENT_REQUIRED = 1;
  }

הגדרה לדוגמה של סיבת הקישור

{
  "metadata": {
    "processing_instruction": "PROCESS_AS_COMPLETE",
    "shard_number": 0,
    "total_shards": 1,
    "nonce": "11203880",
    "generation_timestamp": 1543875200
  },
  "service_availability": [
    {
      "availability": [
        {
          "merchant_id": "dining-A",
          "service_id": "reservation",
          "linkout_required_reason": "PAYMENT_REQUIRED",
          "start_sec": 1535853600,
          "duration_sec": 2700,
          "spots_total": 2,
          "spots_open": 2,
          "resources": {
            "room_id": "A-dining-room",
            "room_name": "Dining Room",
            "party_size": 2
          }
        }
      ]
    }
  ]
}

4. אימות שדות במרכז הפעולות

אחרי שהפידים נשלחים בהצלחה ואין שגיאות בהיסטוריית הפיד, אפשר לאמת את השדות לפי השלבים הבאים.

תבנית כתובת URL ב'כלי להצגת מלאי שטחי הפרסום'

ההגדרה של תבנית כתובת ה-URL מופיעה בקטע 'שירותים' בתצוגת המלאי של המוכר. התבנית נמצאת בקטע 'קטע קוד של פיד' . מומלץ לעיין בתצוגת מלאי לקבלת פרטים נוספים על תצוגת שירות.

איור 1: דוגמה למציאת כתובת URL במרכז הפעולות

סיבת הקישור בכלי להצגת הזמינות

השדה linkout_reason_required מופיע כשמציגים את חלון הזמינות הספציפי בתצוגת הזמינות.

איור 1: דוגמה למציאת כתובת URL במרכז הפעולות