URL-Vorlagen für Zahlungsweiterleitung

Wenn ein Nutzer einen Verfügbarkeitszeitraum mit einem bestimmten Preis bucht, wird er über eine von Ihnen festgelegte URL auf Ihre Buchungsseite weitergeleitet. Die Schritte wie Sie Folgendes tun können:

  1. Definieren Sie Ihre URL-Vorlage.
  2. Legen Sie die URL-Vorlage in Ihren Feeds fest.
  3. Linkout pro verfügbarem Slot aktivieren.
  4. Überprüfen Sie die Felder im Info-Center.

1. URL-Vorlage definieren

Die URI-Vorlage folgt der Spezifikation für URI-Vorlagen der Internet Engineering Task Force (IETF) RFC6570 Level 2. Weitere Informationen finden Sie unter datatracker.ietf.org. Die URL wird von Ihnen mit Parametern festgelegt, die dynamisch mit Informationen zu dieser Reservierung. Die folgende Tabelle enthält erforderliche und optionale Parameter, die für die URI-Vorlage verfügbar sind.

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

Verfügbare Werte für die URL-Vorlage

Vorlagenparameter Erforderlich / Optional Feed Feld Beispielwert
availability_slot_start_seconds Erforderlich Verfügbarkeit start_sec 4152695841
resources_party_size Erforderlich availability.resources party_size 2
availability_slot_availability_tag Optional Verfügbarkeit availability_tag res-123
availability_slot_duration_seconds Optional Verfügbarkeit duration_sec 3600
resources_room_id Optional availability.resources room_id bar_123

2. Legen Sie die URI-Vorlage in Ihrem Feed fest.

Im folgenden Abschnitt wird davon ausgegangen, dass Sie eine Live-Integration der Ende-zu-Ende-Verschlüsselung mit einem vorhandenen Dienstleistungsfeed: Die von Ihnen definierte URL wird im Dienstfeed festgelegt. Im Folgenden finden Sie die Definition für dieses Feld.

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

Definition der URI-Vorlage

// 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;
}

Definition des Beispiels für einen Dienst

{
  "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"
          }
        ]
      }
    }
  ]
}

Im folgenden Abschnitt wird davon ausgegangen, dass Sie eine Live-Integration der Ende-zu-Ende-Verschlüsselung mit einem vorhandenen Verfügbarkeitsfeed: Nachdem Sie die URL-Vorlage in Ihrem Service-Feed nutzen, müssen Sie angeben, welche Ihrer verfügbaren Slots für einen Linkout erforderlich.

Dazu fügen Sie das Feld linkout_required_reason mit dem Wert PAYMENT_REQUIRED hinzu.

Definition des Linkout-Grundes

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;
  }

Beispieldefinition für den Grund für einen Linkout

{
  "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. Felder im Info-Center überprüfen

Sobald Ihre Feeds erfolgreich eingereicht wurden und der Feed keine Fehler enthält verlaufen, können Sie die Felder mit den folgenden Schritten überprüfen.

URL-Vorlage in der Inventaranzeige

Die Definition der URL-Vorlage finden Sie in der Inventaransicht eines Händlers im Bereich „Dienste“. Sie finden die Vorlage im Bereich „Feed-Snippet“. Unter Inventaransicht finden Sie weitere Informationen zum Händler- und Dienstansicht.

Abbildung 1: Beispiel für die Suche nach einer URL im Info-Center

Linkout-Grund in der Verfügbarkeitsanzeige

Sie finden das Feld linkout_reason_required, wenn Sie die spezifische verfügbaren Slot in der Verfügbarkeitsansicht aus.

Abbildung 1: Beispiel für die Suche nach einer URL im Action Center