アクション センターとの予約に関するエンドツーエンドの統合の一環として、販売者が予約を行った際に、ユーザーから支払いを受け取るように選択できます。Google は決済代行業者と連携して、トークン化を設定します。決済代行業者は一意のトークンを使って販売者に安全に支払いを行います。
支払いで保護された予約の場合、購入手続きのフローに支払い情報モジュールが表示されます。これにより、ユーザーはクレジット カード情報を入力できます。
3DS1 と 3DS2 がサポートされています。実装については、このチュートリアルをご覧ください。
対象条件
販売者がアクション センターを通じて支払いを受け取るには、次の要件を満たす必要があります。
- サポートされている決済代行業者を使用する。サポートされている決済代行業者の最新リストは、Google Pay のウェブサイトで確認できます。
- 決済代行業者に従ってトークン化された支払いを受け入れます。
- こちらに記載されているように、身元確認およびビジネスのオーナー確認プロセスを完了します。
- 非同期確認 を必要とする予約では、支払いを有効にできません。
支払いに関するフィードと予約サーバーへの変更内容
支払いは販売者レベルのオプトイン プロセスを通じて行われます。サービスに対する支払いを受け取る必要がある販売者に対しては、支払いを有効にする必要があります。支払いを有効にするには、フィードと予約サーバーに変更を加える必要があります。
フィード
- 販売者フィード:
tokenization_config
フィールドで設定したtokenization_parameter
を使用して支払い情報を指定します。このセットは、選択した決済代行業者によって異なります。このセットは、Google Pay と統合する場合に 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
に設定します。
支払いのユースケース
それぞれのユースケースで支払いを受け取るかどうかを決定する際は、Google のお支払いポリシーを確認し、関連するすべてのポリシーを遵守していることを確認してください。
支払いのユースケースは次のとおりです。
これらのユースケースの実装方法について詳しくは、支払いの構成のチュートリアルをご覧ください。
前払いによる予約の完了
図 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
に設定します。
クレジットカード必須
他のユースケースでは、予約時にクレジット カードが必要になることがあります。
キャンセルと払い戻し
キャンセルと払い戻しは、パートナーまたはユーザーによって、アクション センターを通じて行われます。いずれの場合も、サービスレベルで設定された CancellationPolicy
を遵守し、決済の予約時にユーザーに伝える必要があります。
CancellationPolicy
を指定しない場合、min_advance_online_canceling
で定義されたキャンセル可能期間内のキャンセルはサービスレベルで払い戻し可能であるとみなされます。min_advance_online_canceling
が定義されていない場合は、0(いつでもキャンセル可能)になります。
アクション センター側からキャンセルを無効にする必要がある場合は、Google の POC にご相談ください。
RTU の変更- ユーザーに払い戻しを行った後、予約の更新 RTU を送信して予約の支払いステータスを変更する必要があります。
update_mask
をstatus,payment_information.prepayment_status
に設定し、payment_information.prepayment_status = PREPAYMENT_REFUNDED
とstatus = CANCELED
を設定します。- 新しい
BookingStatus = CANCELED
とPrepaymentStatus = PREPAYMENT_REFUNDED
を使用します。列挙値CANCELED_AUTOMATIC_REFUND
は、Maps Booking API と gRPC の両方のテンプレートで非推奨になりました。
- 新しい
- アクション センターが
UpdateBookingRequest
を送信し、それによってユーザーへの払い戻しがトリガーされたら、UpdateBookingResponse
でbooking.payment_information.prepayment_status = PREPAYMENT_REFUNDED
を設定します。