さまざまなお支払い方法の設定

アクション センター プラットフォームはさまざまな構成をサポートしている お支払いを受け取る際に有効です。「 お支払いの有効化に関するガイドでは、統合の以下の側面について説明しています。 すべてのお支払い統合に共通です。

  1. tokenization_parameter の情報を含むフィードの設定
  2. payment_method_token を受け入れるように予約サーバーを更新しています オブジェクト
  3. ユーザー、アクション センター、ユーザー間のやり取りの概要 パートナー / 販売者、決済代行業者です。

このガイドでは、Google Cloud で フィードを設定して、さまざまな種類のフィードを指定する お支払い設定が販売者とサービスに適用されます。

  1. 支払いなし / 到着時支払い
  2. 全額前払い
  3. 無断キャンセル料 / キャンセル料
  4. Deposit

支払いのユースケースはすべて、支払い不要の延長です。 / 到着時支払いのユースケース(支払い構成が不要)なので、 このチュートリアルでは、まずその構成について説明し、 拡張機能として構成できます。

各セクションでは、 予約サーバーに登録して、特定の支払いを受け付ける できます。

支払いなし / 到着時支払い

予約時に支払いが不要なサービスについては、 販売者やサービスにお支払い設定を行う必要はない できます。ただし、価格は引き続き指定する必要があります。

これはサービスのベースライン構成です。 名前、説明、価格の 4 つですこれは単一の Service メッセージです。 同じ ServiceFeed:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-1-a",
    "name": "Men's haircut",
    "description": "One of our stylists will cut your hair",
    "price": {
        "price_micros": 15000000,
        "currency_code": "USD"
    }
}

標準実装以外の追加構成は不要 到着時支払いをサポートするため。

一括前払い

この構成を使用して、サービスに対して適用される金額 は、予約時に全額を支払う必要があります。

前払いは、 prepayment_type フィールド Service。サービスに対して支払いを要求するには、 以下の例のように、REQUIRED に設定する必要があります。注: 料金は到着時支払いの例と同じ方法で指定されます。ここでは、 前払いタイプを [required] に設定しているため、クレジット カードは この料金は購入手続き時に請求できます。

<ph type="x-smartling-placeholder">

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "prepayment_type": "REQUIRED"
}

予約サーバー

前払いを受け入れると、支払いトークンが予約に渡されます サーバーへの呼び出しで CreateBooking(このフィールドを使用) payment_processing_parameters.unparsed_payment_method_token。 価格フィールドがありますが、その場合は通貨の フィードで指定されているこれらの請求は、 の お支払いに関するガイドの有効化

返品時には、 CreateBookingResponse booking.payment_information フィールドは、terraform plan または terraform apply の 前払いが行われ、処理されたことが反映されます。

PaymentInformation の仕様に、 ドキュメントをご覧ください。簡単な例を挙げると 前払いの処理に関する手順は以下のとおりです。価格が 価格フィールドで指定されたものと リクエストできます。また、フィード/リクエストで税率が指定されている場合は、 正確に含める必要があります

取引 ID も指定する必要があります。この取引 ID 少なくとも、その販売者との取引間で一意である必要があります。 トランザクション ID の候補は、トランザクション ID に指定された 決済代行業者によってユーザーに提示されます。

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
}

無断キャンセル料

ユーザーがイベントに参加しなかった場合、そのユーザーは無断キャンセル料を請求されることがあります。 キャンセルは 解約可能期間。キャンセル期間が指定されていない場合は、 デフォルトはスロットの開始時間です。

無断キャンセル料を指定するには、サービス フィードに no_show_fee フィールドを渡す必要があります。

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "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"
    }
}

上記の例では、パートナーまたは販売者は、 規定のとおりに $25 の固定レートが請求されます。 予約者の場合、no_show_fee.fee.price_micros フィールド 面倒な作業になります。この料金は、ユーザーが 予約の 4 時間前(14, 400 秒)以内にキャンセルします。 scheduling_rules.min_advance_online_canceling で指定 表示されます。

<ph type="x-smartling-placeholder">

空き状況レベルで無断キャンセル料を定義する方法については、以下をご覧ください。 こちらのセクションをご覧ください。

予約サーバー

無断キャンセル料を含むリクエストを処理する場合、支払いトークン が予約サーバーに渡されます。 CreateBooking(このフィールドを使用) payment_processing_parameters.unparsed_payment_method_token。 このトークンは前払いの場合と同じ方法で渡されます。 あります。ただし、トークンは短期間しか承認されないため、 決済代行業者の関連する API を呼び出して、 永続化できるバージョンにこのトークンを 後で説明します詳しくは、お支払いの有効化に関するガイドのセクションをご覧ください。 オン 無断利用料トークンのフロー

返品時には、 CreateBookingResponse booking.payment_information フィールドを適切に設定する必要がある 次の例のように、無断欠席料金のステータスをエコーバックします。

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "no_show_fee": {
        "fee": {
            "price_micros": 25000000,
            "currency_code": "USD"
        }
        "fee_type": "FIXED_RATE_DEFAULT"
    }
}

no_show_fee は価格を反映するように設定されており、 請求される可能性のある料金の構成。また、事前トレーニング済みモデルと同様に、 前払いの例では、このメッセージに transaction_id が必要です。

また、booking_idCreateBookingResponse 充電時に送信する必要があるリアルタイム更新の必須項目です 無断キャンセル料がかかりますこの ID は情報とともに保存されることが想定されます。 予約の詳細が表示されます

リアルタイム更新

ユーザーが予定された予約に到着しなかった、またはキャンセルした場合 キャンセル期間の終了後(直接問い合わせるなど)、 支払い情報を使用して、指定された無断キャンセル料を請求することもできます。 自動的に選択されます。無断キャンセル料を請求した場合は、 無断キャンセル料が請求されたことを指定する Real Time Update

対象: CreateBooking。更新を次の宛先に送信します: notification.partners.bookings.patch。このリクエストの本文では、 更新された予約。ステータスが NO_SHOW_PENALIZED。このステータスは、請求が行われたことを Google に通知します。 できます。

たとえば、リクエストを次の宛先に送信します。

PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status

リクエスト本文を使用する場合:

JSON

{
    "name": "partners/12345678/bookings/123123123"
    "merchantId": "merchant-1"
    "serviceId": "service-2-b"
    "status": "NO_SHOW_PENALIZED"
}

Deposit

デポジットは、初回の請求時に適用されます。 予約できます。デポジットは予約時または後で請求できます あります。場合によっては、保証金がどの条件で払い戻し可能になるかを定義する必要があります。 および オンラインで予約をキャンセルできる場合

デポジットを指定するには、サービス フィードに deposit フィールドを渡す必要があります。

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "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"
    }
}

この例では、 min_advance_online_canceling は、キャンセル期間と deposit.min_advance_cancellation_sec では、デポジットがいつ払い戻し可能になるかを定義します。上記の例では、デポジットで キャンセル時間は、払い戻し規約とは別にする必要があります。この場合 ユーザーは 24 時間前(86,400 秒)までは、オンラインのサービスのみにアクセスする必要があります。これにより販売者は キャンセルの遅れを直接通知する。それでもユーザーは 4 時間前まで、デポジットの払い戻しの対象となります 予約前(お客様または販売者に連絡してキャンセルすること)(14,400 秒) この同意は、ご購入手続き時の規約と確認メールに記載されます。

<ph type="x-smartling-placeholder">

可用性レベルでデポジットを定義する方法については、以下をご覧ください。 こちらのセクションをご覧ください。

予約サーバー

デポジットを含むリクエストを処理する場合、支払いトークンは 呼び出しで予約サーバーに渡されます。 CreateBooking(このフィールドを使用) payment_processing_parameters.unparsed_payment_method_token。 このトークンは、前払いの場合と同じ方法で渡されます。もし 予約時に敷金を請求したり保留を解除したりできます。 リクエスト中。

後日デポジットを請求する予定の場合は、 一時的なものの場合は、API を呼び出す必要があります。 API を使用して、このトークンを 後で使用できるように永続化できるバージョンです。これは、 お支払いの有効化に関するガイドのセクション デポジット トークン フローをご覧ください。

返品時には、 CreateBookingResponse: booking.payment_information フィールドには 次の例に示すように、デポジットのステータスを適切にエコーバックします。

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "deposit": {
        "deposit": {
            "price_micros": 25000000,
            "currency_code": USD,
            "min_advance_cancellation_sec": 28800,
        }
        "deposit_type": "FIXED_RATE_DEFAULT"
    }
}

デポジットは、 デポジットを請求または保留します。また、事前トレーニング済みモデルと同様に、 前払いの例では、このメッセージに transaction_id が必要です。

リアルタイム更新

ユーザーがデポジットのキャンセル期間の前に予約をキャンセルした場合、 ユーザーカードに請求したデポジットを払い戻す。日時 手続きには、次の手続きを行う必要があります。 リアルタイム更新。デポジットが払い戻されたことが示されます。

対象: CreateBooking。更新を次の宛先に送信します: notification.partners.bookings.patch。本コースの リクエストが更新されたことになり、ステータスが CANCELED および 「paymentInformation.prepaymentStatus」フィールドの設定 PREPAYMENT_REFUNDED。これはデポジットが 払い戻しされます。

たとえば、リクエストを次の宛先に送信します。

PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status

リクエスト本文を使用する場合:

JSON

{
    "name": "partners/12345678/bookings/123123123"
    "merchantId": "merchant-1"
    "serviceId": "service-2-b"
    "status": "CANCELED"
    "paymentInformation": {
      "prepaymentStatus": "PREPAYMENT_REFUNDED"
    }
    
}

クレジットカードが必要

サービスの利用には、追加の手段としてクレジット カードが必要になる場合があります。 ユーザーの本人確認。ただし、 前払い、デポジット、無断キャンセル料の支払いがあります。これらのユースケースが 必要な場合は、手順を使用して明示的に構成する必要があります。 ご覧ください。また、クレジット カードが必要になった場合は、 予約が大幅に減少しています

購入手続き時にクレジット カードの提供を必須にするには、次のように設定します。 フィールド require_credit_card から REQUIRE_CREDIT_CARD_ALWAYS

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-1-a",
    "name": "Men's haircut",
    "description": "One of our stylists will cut your hair",
    "price": {
        "price_micros": 15000000,
        "currency_code": "USD"
    },
    "require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS"
}

予約サーバー

クレジット カード要件を含むリクエストを処理する場合、 への呼び出しで予約サーバーに渡されます。 CreateBooking(このフィールドを使用) payment_processing_parameters.unparsed_payment_method_token。 このトークンは前払いの場合と同じ方法で渡されます。 あります。ただし、トークンは短期間しか承認されないため、 決済代行業者の関連する API を呼び出して、 永続化できるバージョンにこのトークンを 後で説明します

予約サーバーのレスポンスには追加情報は不要 到着時支払いのユースケースでは対応できません

在庫状況レベルでの料金のオーバーライド

上のすべての例で、料金 / 料金体系を指定します。 割り当てる必要がありますほとんどの場合、このサービスレベル料金は 分析できますただし、場合によっては、支払い構造を変更することが合理的な場合もあります。 予約できますたとえば、次のような状況です。 可用性レベルで価格 / 手数料をオーバーライドすることで処理できます。

  • 料金は火曜日に値下げされ、土曜日に引き上げられます。
  • 午後 5 時から午後 7 時までの空室には無断キャンセル料が適用されます。

以下の表は、各お支払い方法と、 サービスレベルの定義をオーバーライドします。

お支払い方法 手数料 / 料金の定義 オーバーライド可能
到着時に支払う Service.price 価格をオーバーライド可能 Availability.payment_option_id が参照しています Merchant.payment_option
一括前払い Service.price 価格は以下を通じてオーバーライドできます: Availability.payment_option_id が参照しています Merchant.payment_option
無断キャンセル料 Service.no_show_fee Availability.no_show_fee
Deposit Service.deposit Availability.deposit
クレジット カードが必要 Service.require_credit_card Availability.require_credit_card

在庫状況レベルで価格をオーバーライドするには、 支払いオプションを設定できますまた、リソースの追加や更新の キャンセル可能期間を設定する方法については、こちらのガイドをご覧ください。 解約期間を追加する方法