作为 Actions Center 预约端到端集成的一部分,您可以选择让商家在用户进行预订、预约或预订时接收他们付款。Google 与付款处理方合作来设置令牌化。然后,付款处理方会使用唯一的令牌安全地向商家付款。
对于支持付款的预订,我们会在结账流程中提供付款信息模块。这样,用户就可以输入其信用卡信息。
我们提供对 3DS1 和 3DS2 的支持,请参阅本教程了解实现方式。
资格要求
为了让您的商家能够通过 Actions Center 接收付款,您必须满足以下要求:
- 使用受支持的付款处理方。您可以在 Google Pay 网站上找到受支持的处理方的最新列表。
- 根据您的处理方接受令牌化付款。
- 完成 此处所列的身份验证和商家验证流程。
- 无法为需要 异步确认 的预订启用结算功能。
对 Feed 和预订服务器进行更改以启用付款功能
通过在商家级别选择启用,您即可启用付款功能。您必须为需要针对其任何服务接收付款的商家启用付款功能。如需启用付款功能,必须对 Feed 和预订服务器进行更改。
Feed
- 商家 Feed:通过
tokenization_config
字段中设置的tokenization_parameter
指定付款信息。该集合取决于所选的付款处理方。此集合与要传递给 Google Pay 的paymentMethodTokenizationParameters.parameters
集(如果要与其集成的话)相同。 - 服务/可用性 Feed:根据相应的用例指定付款要求。如需了解详情,请参阅付款用例。
预订服务器
- 根据用户所用的付款类型,实现
CreateBooking
方法 - Google 会将
payment_processing_parameters.unparsed_payment_method_token
字段中的付款令牌作为CreateBookingRequest
的一部分发送。这与您在 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 和付款处理方之间的这些活动流程。
押金和违约金可用于确保用户准时赴约。
- 系统可能会提前或稍后从用户的信用卡中收取押金。
- 如果用户未出现在预订信息中,可向其收取违约金。
- 如有必要,可在预订时同时收取押金和违约金。
- 即使不需要预先付款,预订服务器也必须使用
PaymentInformation
(包含payment_transaction_id
,该 ID 必须是唯一的)来响应 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
。