Modelli di URL per il reindirizzamento dei pagamenti

Al momento della prenotazione di una fascia di disponibilità con un prezzo specifico, l'utente riceverà vengono reindirizzati alla tua pagina di prenotazione utilizzando un URL da te definito. I passaggi forniti ti mostreranno come svolgere le seguenti operazioni:

  1. Definisci il modello di URL.
  2. Imposta il modello di URL nei tuoi feed.
  3. Abilita il linkout per slot di disponibilità.
  4. Verifica i campi nel Centro azioni.

1. Definizione del modello di URL.

Il modello URI è conforme alla specifica Internet Engineering Task Force (IETF) RFC6570 Specifica del modello URI di livello 2; maggiori dettagli sono disponibili all'indirizzo datatracker.ietf.org. L'URL viene impostato da te con parametri compilati dinamicamente con le informazioni relative alla prenotazione. La tabella seguente include i parametri obbligatori e facoltativi disponibili per il modello URI.

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

Valori disponibili per il modello di URL

Parametri del modello Obbligatorio/Facoltativo Feed Campo Valore di esempio
availability_slot_start_seconds Obbligatorio disponibilità start_sec 4152695841
resources_party_size Obbligatorio availability.resources party_size 2
availability_slot_availability_tag Facoltativo disponibilità availability_tag res-123
availability_slot_duration_seconds Facoltativo disponibilità duration_sec 3600
resources_room_id Facoltativo availability.resources room_id bar_123

2. Imposta il modello URI nel feed.

Nella sezione seguente si presuppone che tu abbia un'integrazione E2E attiva con un feed di servizi esistente. L'URL che hai definito verrà impostato nel feed del servizio. Di seguito è riportata la definizione di questo campo.

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

Definizione del modello di 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;
}

Definizione di esempio di servizio

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

Nella sezione seguente si presuppone che tu abbia un'integrazione E2E pubblicata con un feed di disponibilità esistente. Dopo aver impostato il modello di URL nel feed del servizio, dovrai specificare quali slot di disponibilità saranno obbligatori per i linkout.

Aggiungi il campo linkout_required_reason con un valore di PAYMENT_REQUIRED.

Definizione del motivo del linkout

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

Esempio di definizione del motivo del collegamento

{
  "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. Verificare i campi nel Centro azioni

Una volta che i feed sono stati inviati correttamente e non sono presenti errori nel feed puoi verificare i campi seguendo questi passaggi.

Modello di URL in Visualizzatore dell'inventario

Puoi trovare la definizione del modello di URL nella sezione Servizi della visualizzazione dell'inventario di un commerciante. Il modello si trova nello "snippet del feed" . Consulta la sezione Visualizzazione inventario per ulteriori dettagli su Merchant Center e Service View (Visualizzazione servizio).

Figura 1: esempio di ricerca di un URL nel Centro azioni

Motivo del linkout nel visualizzatore della disponibilità

Puoi trovare il campo linkout_reason_required quando visualizzi la scheda slot di disponibilità in Visualizzazione disponibilità.

Figura 1: esempio di ricerca di un URL nel Centro azioni