「Google で予約」のエンドツーエンド統合の一環として、ユーザーが予約や予約を行うと、販売者は支払いを受け取ることができるようになります。Google は決済代行業者と連携してトークン化を行います。決済代行業者は一意のトークンを使って販売者に安全に支払いを行います。
支払いで保護された予約の場合、購入手続きフローにお支払い情報モジュールが表示されます。これにより、ユーザーはクレジット カード情報を入力できます。
3DS1 と 3DS2 のサポートは利用可能です。実装についてはこちらのチュートリアルをご覧ください。
対象条件
販売者が「Google で予約」を介して支払いを受け取るには、次の要件を満たす必要があります。
- サポートされている決済代行業者を使用する。サポートされている決済代行業者の最新のリストについては、Google Pay ウェブサイトをご覧ください。
- 決済代行業者に合わせてトークン化された支払いを受け付けます。
- 非同期確認が必要な予約の支払いを有効にすることはできません。
支払いに関するフィードと予約サーバーへの変更内容
支払いは販売者レベルのオプトイン プロセスを通じて行われます。サービスについて支払いを受ける必要がある販売者への支払いを有効にする必要があります。支払いを有効にするには、フィードと予約サーバーを変更する必要があります。
フィード
- 販売者フィード:
tokenization_config
フィールドに設定されたtokenization_parameter
を使用して、支払い情報を指定します。セットは、選択された決済代行業者によって異なります。このセットは、統合するときに Google Pay に渡されるpaymentMethodTokenizationParameters.parameters
のセットです。 - サービス / 空室状況フィード: 適切なユースケースに基づいて支払い要件を指定します。詳細については、支払いのユースケースをご覧ください。
予約サーバー
- ユーザーが行っている支払いの種類に基づいて、
CreateBooking
メソッドを実装します。 - Google は、
CreateBookingRequest
の一部としてフィールドpayment_processing_parameters.unparsed_payment_method_token
に支払いトークンを送信します。これは、Google Pay 統合でコールバックが受け取るpaymentData
と同じです。 CreateBookingResponse
に、支払いタイプ、ステータス、トランザクション ID、価格 / 手数料の構造を指定する PaymentInformation メッセージを含めます。CreateBookingResponse
でpayment_information.payment_processed_by
フィールドをPROCESSED_BY_PARTNER
に設定します。
支払いのユースケース
それぞれのユースケースで支払いを受けるかどうかを決定する際は、支払いポリシーを確認し、関連するすべてのポリシーを遵守できることを確認してください。
支払いのユースケースは次のとおりです。
各ユースケースの実装方法の詳細については、支払いの構成のチュートリアルをご覧ください。
前払いによる予約の完了
図 1 に、ユーザー(スケジュール パートナー)、Google、決済代行業者の間のアクティビティの流れを示します。
- サービス費用の全額を支払う必要があります。つまり、予約時にサービス料金の全額を支払う必要があります。
-
そのサービスの
prepayment_type
フィールドをREQUIRED
に設定します。 - そのサービスの
require_credit_card
フィールドをREQUIRE_CREDIT_CARD_CONDITIONAL
に設定します。
デポジットと無断キャンセル料
デポジットと無断キャンセル料は同様の方法で設定します。図 2 は、ユーザー(スケジュール パートナー)、Google、決済代行業者の間のこれらのアクティビティの流れを示しています。
デポジットと無断キャンセル料は、ユーザーが予約を確認するために必ず表示されます。
- デポジットは前払いでも後からでもかまいません。
- 予約が表示されない場合、無断キャンセル料を請求できます。
- 必要に応じて、デポジットと無断キャンセル料の両方を予約時に適用できます。
- 前もって支払いが必要ない場合でも、予約サーバーは
payment_transaction_id
を含むPaymentInformation
を使用して CreateBooking リクエストに応答する必要があります。これは一意である必要があります。payment_transaction_id
は決済代行業者から提供された必要はありませんが、予約サーバーで生成できます。
デポジットと無断キャンセル料は、サービスレベルまたは販売者の空室状況スロットレベルで指定できます。予約枠レベルで指定すると、サービスレベル定義がオーバーライドされます。
- デポジットを有効にするには、サービスレベルまたは可用性スロットレベルで
deposit
フィールドを設定します。 - 無断キャンセル料を有効にするには、サービスレベルまたは空室状況スロットレベルで
no_show_fee
フィールドを設定します。 - サービスレベルまたは可用性スロットレベルで
require_credit_card
フィールドをREQUIRE_CREDIT_CARD_CONDITIONAL
に設定します。 - (省略可)
prepayment_type
をREQUIRED
またはOPTIONAL
に設定します。
クレジットカード必須
予約時にクレジット カードが必要なユースケースもあります。
- 販売者の Service レベルまたは Availability スロットレベルで、
require_credit_card
フィールドをREQUIRE_CREDIT_CARD_ALWAYS
に設定します。
キャンセルと払い戻し
キャンセルと払い戻しは、パートナーが開始するか、「Google で予約」を通じて開始されます。いずれの場合も、サービスレベルで設定され、予約手続きの際にユーザーに伝えられる CancellationPolicy
を尊重する必要があります。
CancellationPolicy
を指定しない場合、min_advance_online_canceling
で定義された、サービスレベルに設定されたキャンセル期間内のキャンセルはすべて払い戻し可能と見なされます。
min_advance_online_canceling
が定義されていない場合は、0(いつでもキャンセル可能)になります。
「Google で予約」側でキャンセルを無効にする必要がある場合は、Google の担当者にご相談ください。
RTU の変更点- ユーザーに払い戻しを行った後に、更新予約の RTU を送信して、予約の支払いステータスを変更する必要があります。
update_mask
をstatus,payment_information.prepayment_status
に設定し、payment_information.prepayment_status = PREPAYMENT_REFUNDED
とstatus = CANCELED
を設定します。- 新しい
BookingStatus = CANCELED
とPrepaymentStatus = PREPAYMENT_REFUNDED
を使用します。Enum 値CANCELED_AUTOMATIC_REFUND
は、Maps Booking API と gRPC テンプレートの両方で非推奨になりました。
- 新しい
- 「Google で予約」で
UpdateBookingRequest
が送信され、ユーザーが払い戻しを行った場合は、UpdateBookingResponse
でbooking.payment_information.prepayment_status = PREPAYMENT_REFUNDED
を設定します。