透過 Actions Center 的「預約」端對端整合功能,您可以選擇將商家加入「預約」計畫,以便在使用者進行預訂、預約或預訂時收取款項。Google 會與付款處理方合作進行代碼化設定,設定完畢後,付款處理方就能使用不重複代碼安全地付費給商家。
針對設有付款機制的預訂,我們會在結帳流程中顯示「付款資訊」模組,讓使用者輸入信用卡資訊。
我們已支援 3DS1 和 3DS2,實作請參閱這個教學課程。
使用資格
您必須符合下列條件,才能透過 Actions Center 收取款項:
- 與受支援的付款處理方合作。如要查看支援的處理方最新清單,請前往 Google Pay 網站。
- 能夠根據處理方的指示接受權杖化付款。
- 完成 這裡所列的身分和商家驗證程序。
- 無法對需要 非同步確認 的預訂啟用付款功能。
變更動態饋給和預訂伺服器以啟用付費功能
在商家層級完成啟用程序後,才能使用付費功能。您必須為所有需要收取服務費用的商家啟用付款功能。您必須修改動態饋給和預訂伺服器,才能啟用付款功能。
動態饋給
- 商家動態饋給:請使用
tokenization_config
欄位中設定的tokenization_parameter
指定付款資訊。組合取決於所選的付款處理方。這個組合與傳送給 Google Pay 的paymentMethodTokenizationParameters.parameters
組合相同,如果您整合了這個 API,也同樣會傳遞此組合。 - 服務/供應情形動態饋給:請根據您的適當用途指定付款規定,詳情請參閱「付款用途」一文。
Booking Server (預訂伺服器)
- 請根據使用者的付款類型實作
CreateBooking
方法 - Google 會透過
CreateBookingRequest
傳送payment_processing_parameters.unparsed_payment_method_token
欄位中的付款權杖。這與 Google Pay 整合程序中回呼收到的paymentData
相同。 - 在
CreateBookingResponse
中加入 PaymentInformation 訊息,指定付款方式、狀態、交易 ID 和價格 / 費用結構。 - 將
CreateBookingResponse
中的payment_information.payment_processed_by
欄位設為PROCESSED_BY_PARTNER
。
付費功能使用案例
在決定是否要針對各個使用情境收取款項時,請參閱我們的付款政策,並確認您符合所有相關政策。
付款的用途如下:
如要進一步瞭解如何實作這些用途,請參閱設定付款功能的教學課程。
預收預訂的全額費用
圖 1 顯示使用者、您 (排程合作夥伴)、Google 和付款處理方之間的活動流程。
- 付款金額必須是服務費用金額的 100%,換句話說,服務必須在預訂時全額付清。
-
將該服務的
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
。Maps Booking API 和 gRPC 範本都淘汰了CANCELED_AUTOMATIC_REFUND
列舉值。
- 使用新的
- 當 Actions Center 傳送
UpdateBookingRequest
且 觸發退款給使用者時,請在UpdateBookingResponse
中設定booking.payment_information.prepayment_status = PREPAYMENT_REFUNDED
。