Actions Center の予約のエンドツーエンド統合の一環として、ユーザーが予約を行った際、販売者がユーザーからの支払いを受け取るように設定できます。Google は決済代行業者と連携してトークン化を設定し、決済代行業者は一意のトークンを使って販売者に安全に支払いを行います。
支払いが保護された予約の場合は、決済フローに [支払い情報] モジュールが表示され、ユーザーはクレジット カードの情報を入力できます。
3DS1 と 3DS2 向けのサポートが提供されています。実装については、こちらのチュートリアルをご覧ください。
利用資格
販売者が Actions Center で支払いを受け取るには、次の要件を満たしている必要があります。
- サポートされている決済代行業者を使用する。サポートされている決済代行業者の最新のリストについては、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
に設定します。
クレジットカード必須
予約時にクレジット カードが必要になるユースケースもあります。
キャンセルと払い戻し
キャンセルと払い戻しは、パートナー(お客様)またはユーザーが Actions Center から開始します。どちらの場合も、サービスレベルで設定され、予約の購入手続き時にお客様に通知されたCancellationPolicy
に準拠する必要があります。
CancellationPolicy
を指定しない場合、サービスレベルで設定された min_advance_online_canceling
で定義された解約可能期間内の解約は払い戻し可能と見なされます。min_advance_online_canceling
が定義されていない場合、0 になります(いつでもキャンセル可能)。
Actions Center 側でキャンセルを無効にする必要がある場合は、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 テンプレートの両方でサポートを終了しました。
- 新しい
- Actions Center が
UpdateBookingRequest
を送信し、これによってユーザーの払い戻しがトリガーされた場合は、UpdateBookingResponse
にbooking.payment_information.prepayment_status = PREPAYMENT_REFUNDED
を設定します。