결제 유형 지정

payment-options

URL 템플릿을 설정한 후 다음 단계를 완료하여 슬롯에 결제를 추가할 수 있습니다.

  1. 유료 슬롯 식별
  2. 슬롯 가격 설정
    • 선불 설정
    • 예약 불이행 또는 취소 수수료 설정
    • 예금 설정
    • 신용카드 필요 설정

1. 유료 슬롯 식별

서비스 피드 또는 재고 피드를 사용하여 가격을 정의할 수 있습니다. 서비스 수준에서 가격을 정의하면 해당 서비스 또는 식당 내의 모든 이용 가능 시간대를 고정 가격으로 설정하게 됩니다. 반면 이용 가능 여부에서 가격을 정의하면 특정 슬롯의 가격을 설정하는 것입니다. 예를 들어 다음과 같은 상황은 이용 가능 여부 수준에서 가격 또는 수수료를 설정하여 처리할 수 있습니다.

  • 화요일에는 가격이 인하되고 토요일에는 가격이 인상됩니다.
  • 오후 5시에서 오후 7시 사이의 이용 가능 시간에는 예약 불이행 수수료가 적용되지 않습니다.
  • 6명 이상의 파티의 경우 예약금이 필요합니다.
  • 특정 객실을 예약하려면 신용카드가 필요합니다.

2. 슬롯 가격 설정

선불

이 구성은 예약 시 서비스 금액을 전액 지불해야 함을 지정하는 데 사용됩니다. 선불은 Avaibility 피드의 payment 필드를 통해 이용 가능 여부 수준에서 지정됩니다.

선불 샘플

{
  "availability": [{
    "merchant_id": "dining-A",
    "service_id": "reservation",
    "start_sec": 1535853600,
    "duration_sec": 2700,
    "spots_total": 2,
    "spots_open": 2,
    "resources": {
    "room_id": "A-dining-room",
    "room_name": "Wine Tasting Room",
    "party_size": 2,
    "prepayment": {
      "price_info": {
        "price": {
          "price_micros": 200000000,
          "currency_code": "USD"
        },
        "price_type": "PER_PERSON"
        }
      }
    }
  }]
}

이용 가능 여부 피드

message Availability {
  ...
  // Optional prepayment information for this availability. Prepayment is only
  // available through the Payment Redirect Add-on
  Prepayment prepayment = 20;
}

선불 정의

// A payment the user may be charged as part of their reservation.
message Prepayment {
  PriceInfo price_info = 1;
}

예약 불이행 또는 취소 수수료

사용자가 예약에 참석하지 않거나 취소 기간 후에 취소하는 경우 예약 불이행 수수료 또는 취소 수수료가 사용자에게 청구될 수 있습니다. 취소 기간을 지정하지 않으면 기본적으로 시간대의 시작 시간이 적용됩니다.

노쇼 수수료를 지정하려면 서비스 피드에 다음 예와 같이 no_show_fee 필드를 포함해야 합니다.

예약 불이행 / 취소 수수료 샘플

설명:
이 예에서 파트너 또는 판매자는 약속 참석자가 약속에 참석하지 않은 경우 `no_show_fee.fee.price_micros` 필드에 지정된 고정 요금인 25달러를 청구할 수 있습니다. 이 수수료는 사용자가 `scheduling_rules.min_advance_online_canceling` 필드에 지정된 대로 상담 전 4시간 (14,400초) 이내에 취소하는 경우에도 청구될 수 있습니다.
{
  "merchant_id": "merchant-1",
  "service_id": "service-2-b",
  "name": "Reservation",
  "description": "A dining reservation",
  "price": {
    "price_micros": 200000000,
    "currency_code": "USD"
  },
  "scheduling_rules": {
    "min_advance_online_canceling": 14400
  },
  "no_show_fee": {
    "fee": {
      "price_micros": 25000000,
      "currency_code": "USD"
    },
    "fee_type": "FIXED_RATE_DEFAULT"
  }
}

서비스 피드

message Service {
  ...
  // Defines a no show fee that may be charged to the user. Can be overridden
  // at the availability level. (optional)
  NoShowFee no_show_fee = 12;
}

이용 가능 여부 피드

message Availability {
  ...
  // Defines a no show fee that may be charged to the user. Overrides the
  // service no show fee if one was specified. Setting this to an empty
  // NoShowFee message removes any service-level no show fee. (optional)
  NoShowFee no_show_fee = 13;
}

No Show Fee 정의

// A fee that a user may be charged if they have made a booking but do not
// show up.
message NoShowFee {
  // The amount the user may be charged if they do not show up for their
  // reservation.
  Price fee = 1;

  // Defines how the fee is determined from the availability.
  PriceType fee_type = 3;
}

입금

보증금은 예약 시 요구사항으로 초기 요금을 수집하는 데 사용됩니다. 보증금은 예약 시 또는 나중에 청구될 수 있습니다. 예약금을 환불받을 수 있는 조건과 온라인에서 예약을 취소할 수 있는 경우를 정의해야 할 수 있습니다.

예금을 지정하려면 서비스 피드에서 다음 예와 같이 deposit 필드를 포함해야 합니다.

입금 샘플

설명:
`min_advance_online_canceling` `deposit.min_advance_cancellation_sec`는 보증금을 환불받을 수 있는 시점을 정의합니다. 이 예시에서는 예금이 환불 약관과 별도로 취소 시간을 지정할 수 있습니다. 이 경우 사용자는 최대 24시간 (86, 400초) 전에 온라인에서 서비스를 취소할 수 있습니다. 이렇게 하면 지연된 취소에 대해 판매자에게 직접 알릴 수 있습니다. 하지만 사용자는 예약 4시간 전(14, 400초)까지 (나 또는 판매자에게 취소를 요청하여) 보증금을 환불받을 수 있으며, 이는 결제 시 약관 및 확인 이메일에 표시됩니다.
{
  "merchant_id": "merchant-1",
  "service_id": "service-2-b",
  "name": "Reservation",
  "description": "A dining reservation",
  "price": {
    "price_micros": 200000000,
    "currency_code": "USD"
  },
  "scheduling_rules": {
    "min_advance_online_canceling": 86400,
  },
  "deposit": {
    "deposit": {
      "price_micros": 25000000,
      "currency_code": "USD"
    },
    "min_advance_cancellation_sec": 14400,
    "deposit_type": "FIXED_RATE_DEFAULT"
  }
}

서비스 피드

message Service {
  ...
  // Defines how a deposit may be charged to the user. Can be overridden at the
  // availability level. (optional)
  Deposit deposit = 11;
}

이용 가능 여부 피드

message Availability {
  ...
  // Defines how a deposit may be charged to the user. Overrides the service
  // deposit if one was specified. Setting this to an empty Deposit message
  // removes any service-level deposit. (optional)
  Deposit deposit = 12;
}

Deposit 정의

// A deposit that the user may be charged or have a hold on their credit card
// for.
message Deposit {
  // Deposit amount.
  Price deposit = 1;

  // Minimum advance cancellation for the deposit.
  int64 min_advance_cancellation_sec = 2;

  // Defines how the deposit is determined from the availability.
  PriceType deposit_type = 3;
}

신용카드 필요

신원을 확인하는 추가 방법으로 신용카드가 필요한 서비스가 있을 수 있습니다. 단, 선불, 보증금 또는 예약 불이행 수수료에는 사용하면 안 됩니다. 이러한 사용 사례가 필요한 경우 명시적으로 구성해야 합니다. 신용카드를 요구하면 이 서비스의 예약이 크게 감소하는 경우가 많습니다.

결제 중에 신용카드를 제공하도록 하려면 require_credit_card 필드를 REQUIRE_CREDIT_CARD_ALWAYS로 설정해야 합니다.

신용카드 필요 샘플

{
  "merchant_id": "merchant-1",
  "service_id": "reservation",
  "name": "reservation",
  "description": "Food reservation",
  "require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS"
}

서비스 피드

message Service {
  ...
  // Indicates whether the user must provide a credit card in order to book this
  // service.
  // This value can be overridden at the availability level. (optional)
  RequireCreditCard require_credit_card = 13;
}

이용 가능 여부 피드

message Availability {
  ...
  // Indicates whether the user must provide a credit card in order to book this
  // availability slot.
  // If the value is not set, it is inherited from the service level if it's set
  // there. (optional)
  RequireCreditCard require_credit_card = 14;
}

Require Credit Card 정의

// Defines whether a credit card is required in order to book an appointment.
enum RequireCreditCard {
  // The credit card requirement is not explicitly specified and the
  // behaviour is identical to the one specified for CONDITIONAL.
  REQUIRE_CREDIT_CARD_UNSPECIFIED = 0;

  // Google will require a credit card for the booking if any of the following
  // conditions are met:
  // * the availability has a price and the prepayment_type is REQUIRED
  // * the no_show_fee is set
  // * the deposit field is set.
  REQUIRE_CREDIT_CARD_CONDITIONAL = 1;

  // A credit card is always required in order to book this availability
  // regardless of other field values.
  REQUIRE_CREDIT_CARD_ALWAYS = 2;
}

추가 정의

가격대 정의

// Wrapper for a range of monetary amount treated as unbounded unless both
// values are set. At least one of min_amount and max_amount is required.
message PriceRange {
  // Minimum amount.
  Price min_price = 1;

  // Maximum amount. Should always be > min_price.
  Price max_price = 2;
}

Price Info 정의

// Container for price details.
message PriceInfo {
  oneof price_options {
    Price price = 1;

    // The upper and/or lower bound
    PriceRange price_range = 2
        ;
  }

  // Defines how price or price range is applied (per person or fixed)
  PriceType price_type = 3;
}

Price Type 정의

// Defines how a total price is determined from an availability.
enum PriceType {
  // The price is for a fixed amount. This is the default value if the field is
  // not set.
  //
  // Examples:
  //   $50 deposit to reserve a table; $20 no show fee for a yoga class
  FIXED_RATE_DEFAULT = 0;

  // The price specified is per person, and the total price is calculated
  // according to the party size specified in Resources as price_micros *
  // party_size. A PER_PERSON price must be accompanied by a party size in the
  // availability resources. If it is not, a party size of one is used.
  //
  // Examples:
  //   $10 each for tickets to a museum
  PER_PERSON = 1;
}