الگوهای URL برای تغییر مسیر پرداخت، الگوهای URL برای تغییر مسیر پرداخت

پس از رزرو یک بازه زمانی با قیمت مشخص، کاربر با استفاده از URL تعریف شده توسط شما به صفحه رزرو شما هدایت می‌شود. مراحل ارائه شده به شما نشان می‌دهد که چگونه موارد زیر را انجام دهید:

  1. الگوی URL خود را تعریف کنید.
  2. الگوی URL خود را در فیدهایتان تنظیم کنید.
  3. فعال کردن linkout به ازای هر اسلات در دسترس.
  4. فیلدها را در مرکز اقدام تأیید کنید.

۱. تعریف الگوی URL شما.

الگوی uri از مشخصات الگوی Uri سطح ۲ RFC6570 کارگروه مهندسی اینترنت (IETF) پیروی می‌کند، جزئیات بیشتر در datatracker.ietf.org . URL توسط شما با پارامترهایی تنظیم می‌شود که به صورت پویا با اطلاعات مربوط به آن رزرو پر می‌شوند. جدول زیر شامل پارامترهای الزامی و اختیاری موجود برای الگوی uri شما است.

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

مقادیر موجود برای الگوی URL

پارامترهای الگو الزامی / اختیاری خوراک میدان مقدار مثال
زمان_شروع_در دسترس_بودن_ثانیه مورد نیاز در دسترس بودن شروع_ثانیه ۴۱۵۲۶۹۵۸۴۱
منابع_اندازه_مهمانی مورد نیاز منابع.دسترسی اندازه مهمانی ۲
برچسب_در دسترس_بودن_اسلات اختیاری در دسترس بودن برچسب_در دسترس بودن res-123
مدت زمان_در دسترس_بودن_اسلات_ثانیه اختیاری در دسترس بودن مدت_ثانیه ۳۶۰۰

۲. الگوی آدرس اینترنتی (URI) خود را در فید خود تنظیم کنید.

بخش زیر فرض می‌کند که شما یک ادغام E2E زنده با یک Service Feed موجود دارید. URL که تعریف کرده‌اید در Service Feed تنظیم خواهد شد، موارد زیر شامل تعریف آن فیلد است.

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 زنده با یک Feed Availability موجود دارید. پس از تنظیم الگوی URL در Feed Service خود، باید مشخص کنید که کدام یک از اسلات‌های Availability شما برای اتصال مورد نیاز خواهد بود.

شما می‌توانید این کار را با اضافه کردن فیلد 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
          }
        }
      ]
    }
  ]
}

۴. تأیید فیلدها در مرکز اقدام

زمانی که فیدهای شما با موفقیت ارسال شدند و هیچ خطایی در تاریخچه فید مشاهده نشد، می‌توانید فیلدها را با استفاده از مراحل زیر تأیید کنید.

الگوی URL در نمایشگر موجودی

شما می‌توانید تعریف الگوی URL را در بخش خدمات نمای موجودی یک فروشنده پیدا کنید. این الگو را می‌توانید در بخش "feed snippet" پیدا کنید. برای جزئیات بیشتر در مورد نمای فروشنده و خدمات، به نمای موجودی مراجعه کنید.

شکل ۱: مثالی از یافتن یک URL در مرکز عملیات

دلیل اتصال در نمایشگر دسترسی

می‌توانید فیلد linkout_required_reason را هنگام مشاهده‌ی جایگاه خاص موجود در Availability View پیدا کنید.

شکل ۱: مثالی از یافتن یک URL در مرکز عملیات