Ödeme Yönlendirmesi İçin URL Şablonları

Belirli bir fiyatla müsaitlik durumu aralığı rezervasyonu yapan kullanıcı, sizin tanımladığınız bir URL kullanılarak rezervasyon sayfanıza yönlendirilir. Aşağıdaki adımlarda aşağıdakileri nasıl yapacağınız gösterilmektedir:

  1. URL şablonunuzu tanımlayın.
  2. Feed'lerinizde URL şablonunuzu ayarlayın.
  3. Kullanılabilirlik aralığı başına yönlendirme bağlantısını etkinleştirin.
  4. İşlem Merkezi'ndeki alanları doğrulayın.

1. URL Şablonunuzu Tanımlama.

URI şablonu, İnternet Mühendisliği Görev Gücü (IETF) RFC6570'e göre Düzey 2 Uri Şablonu spesifikasyonu, datatracker.ietf.org adresinde daha fazla bilgi bulabilirsiniz. URL, dinamik olarak doldurulan parametrelerle sizin tarafınızdan belirlenir. bilgileri dahil edin. Aşağıdaki tabloda, uri şablonunuz için kullanılabilen zorunlu ve isteğe bağlı parametreler yer almaktadır.

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

URL Şablonu için Kullanılabilir Değerler

Şablon Parametreleri Zorunlu / İsteğe bağlı Feed Alan Örnek Değer
availability_slot_start_seconds Zorunlu hazır bulunma oranı start_sec 4152695841
resources_party_size Zorunlu availability.resources party_size 2
availability_slot_availability_tag İsteğe bağlı hazır bulunma oranı availability_tag res-123
availability_slot_duration_seconds İsteğe bağlı hazır bulunma oranı duration_sec 3600
resources_room_id İsteğe bağlı availability.resources room_id bar_123

2. Feed'inizde URI Şablonunuzu ayarlayın.

Aşağıdaki bölümde, mevcut bir Hizmet Feed'i. Tanımladığınız URL, Hizmet feed'i söz konusu alanın tanımını aşağıda görebilirsiniz.

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

URI Şablonu tanımı

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

Hizmet Örneği Tanımı

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

Aşağıdaki bölümde, mevcut bir Müsaitlik Feed'iyle canlı bir uçtan uca entegrasyonunuz olduğu varsayılmaktadır. Hizmet feed'inizde URL şablonunu ayarladıktan sonra, hangi müsaitlik aralıkları için bağlantı oluşturmanız gerektiğini belirtmeniz gerekir.

Bunu, linkout_required_reason alanını PAYMENT_REQUIRED.

Bağlantı Kapatma Nedeni Tanımı

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

Bağlantı Kapatma Nedeni Örnek Tanımı

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

başlıklı makaleyi inceleyin.

4. İşlem Merkezi'ndeki Alanları Doğrulama

Feed'leriniz başarıyla gönderildikten ve feed geçmişinde hata bulunmadıktan sonra aşağıdaki adımları uygulayarak alanları doğrulayabilirsiniz.

Envanter Görüntüleyicideki URL Şablonu

URL Şablonu tanımını, satıcının web sitesinin Hizmetler bölümünde envanter görünümüne ihtiyacınız olacaktır. Şablonu "feed snippet" (feed snippet'i) bölümünde bulabilirsiniz. Satıcı ve Hizmet Görünümü hakkında daha fazla bilgi için Envanter Görünümü başlıklı makaleyi inceleyin.

Şekil 1: İşlem merkezinde URL bulma örneği

Kullanılabilirlik Görüntüleyicide Bağlantı Nedeni

linkout_reason_required alanını, Müsaitlik Durumu Görünümü'nde belirli bir müsaitlik durumu aralığını görüntülerken bulabilirsiniz.

Şekil 1: İşlem merkezinde bir URL'yi bulma örneği