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

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

  1. قالب URL خود را تعریف کنید.
  2. الگوی URL خود را در فیدهای خود تنظیم کنید.
  3. فعال کردن پیوند در هر شکاف دسترسی.
  4. فیلدهای موجود در Action Center را تأیید کنید.

1. تعریف قالب URL شما.

الگوی uri از مشخصات الگوی Uri سطح 2 RFC6570 Internet Engineering Task Force (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 مورد نیاز در دسترس بودن start_sec 4152695841
منابع_حزب_اندازه مورد نیاز در دسترس بودن.منابع اندازه_پارتی 2
availability_slot_availability_tag اختیاری در دسترس بودن availability_tag res-123
availability_slot_duration_seconds اختیاری در دسترس بودن duration_sec 3600
resources_room_id اختیاری در دسترس بودن.منابع room_id bar_123

2. الگوی URI خود را در فید خود تنظیم کنید.

بخش زیر فرض می‌کند که یک E2E زنده با یک سرویس فید موجود یکپارچه شده‌اید. نشانی اینترنتی که تعریف کرده‌اید در فید سرویس تنظیم می‌شود، موارد زیر شامل تعریف آن قسمت می‌شود.

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

تعریف نمونه خدمات

{
  "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 انجام دهید.

تعریف دلیل 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;
  }

تعریف نمونه دلیل 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. بررسی فیلدها در Action Center

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

الگوی URL در Inventory Viewer

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

شکل 1: نمونه ای از یافتن URL در مرکز اقدام

دلیل پیوند در نمایشگر در دسترس بودن

وقتی شکاف دسترسی خاص را در نمای دسترسی مشاهده می‌کنید، می‌توانید فیلد linkout_reason_required را پیدا کنید.

شکل 1: نمونه ای از یافتن URL در مرکز اقدام