เทมเพลต URL สําหรับการเปลี่ยนเส้นทางการชําระเงิน

เมื่อจองช่วงเวลาที่พร้อมให้บริการด้วยราคาที่เฉพาะเจาะจง ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าการจองของคุณโดยใช้ URL ที่คุณกำหนด ขั้นตอน ที่ระบุจะแสดงวิธีทำสิ่งต่อไปนี้

  1. กำหนดเทมเพลต URL
  2. ตั้งค่าเทมเพลต URL ในฟีด
  3. เปิดใช้ลิงก์ออกต่อช่วงเวลาที่พร้อมให้บริการ
  4. ยืนยันฟิลด์ในศูนย์การดำเนินการ

1. การกำหนดเทมเพลต URL

เทมเพลต URI เป็นไปตามข้อกำหนดเฉพาะของเทมเพลต URI ระดับ 2 ของ RFC6570 ของคณะทำงานเฉพาะกิจด้านวิศวกรรมอินเทอร์เน็ต (IETF) ดูรายละเอียดเพิ่มเติมได้ที่ 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 ต้องระบุ availability start_sec 4152695841
resources_party_size ต้องระบุ availability.resources party_size 2
availability_slot_availability_tag ไม่บังคับ availability availability_tag res-123
availability_slot_duration_seconds ไม่บังคับ availability duration_sec 3600

2. ตั้งค่าเทมเพลต URI ในฟีด

ส่วนต่อไปนี้ถือว่าคุณมีการผสานรวม E2E ที่ใช้งานจริงกับฟีดบริการที่มีอยู่ ระบบจะตั้งค่า 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.
  //
  // Available parameters for Dining Reservation Linkout:
  // 1) (required) {availability_slot_start_seconds} :: populated from start_sec
  //   field in availability feed
  // 2) (required) {resources_party_size} :: populated from party_size field in
  //   availability feed
  // 3) (optional) {availability_slot_duration_seconds} :: populated from
  //   duration_sec field in availability feed
  // 4) (optional) {availability_slot_availability_tag} :: populated from
  //   availability_tag 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"
          }
        ]
      }
    }
  ]
}

ส่วนต่อไปนี้จะถือว่าคุณมีการผสานรวม E2E แบบเรียลไทม์กับฟีดความพร้อมที่มีอยู่ เมื่อตั้งค่าเทมเพลต 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. ยืนยันช่องใน Action Center

เมื่อส่งฟีดเรียบร้อยแล้วและไม่มีข้อผิดพลาดในประวัติฟีด คุณจะยืนยันช่องได้โดยใช้ขั้นตอนต่อไปนี้

เทมเพลต URL ในเครื่องมือดูพื้นที่โฆษณา

คุณดูคำจำกัดความของเทมเพลต URL ได้ในส่วนบริการของมุมมองสินค้าคงคลังของผู้ขาย คุณจะเห็นเทมเพลตในส่วน "ข้อมูลโค้ดฟีด" ดูรายละเอียดเพิ่มเติมเกี่ยวกับมุมมองผู้ขายและมุมมองบริการได้ที่มุมมองสินค้าคงคลัง

รูปที่ 1: ตัวอย่างการค้นหา URL ภายในศูนย์การดำเนินการ

เหตุผลในการลิงก์ออกในเครื่องมือดูความพร้อม

คุณจะเห็นช่อง linkout_required_reason เมื่อดูช่วงเวลาที่พร้อมให้บริการที่เฉพาะเจาะจงในมุมมองความพร้อมให้บริการ

รูปที่ 1: ตัวอย่างการค้นหา URL ภายในศูนย์การดำเนินการ