Actions Center 平台支持各种配置 是一件非常困难的事情通过 “启用付款”指南涵盖了需要集成的 是所有付款集成通用的,包括:
- 将 Feed 配置为包含
tokenization_parameter
信息 - 更新预订服务器以接受“
payment_method_token
” 对象 - 用户、操作中心和 合作伙伴 / 商家和付款处理方。
在本指南中,我们将更详细地介绍 配置 Feed以指定哪些不同类型的 Feed 付款配置适用于您的商家和服务。
- 无需付款 / 到达时付款
- 全额预付款
- 违约金 / 取消费
- 押金
付款的所有用例都是免付费的延伸 / 到达时付费用例(无需配置付款),因此 教程将首先介绍该配置, 作为扩展
每个部分还将介绍要在 预订服务器才能接受特定的付款 配置。
无需付款 / 到达时付款
对于在预订时不需要支付任何费用的服务, 无需在商家或服务配置付款 。不过,您仍需提供价格信息。
这是服务的基准配置,其中包含
名称、说明和价格这是一条服务消息
以
ServiceFeed
:
JSON
{ "merchant_id": "merchant-1", "service_id": "service-1-a", "name": "Men's haircut", "description": "One of our stylists will cut your hair", "price": { "price_micros": 15000000, "currency_code": "USD" } }
除了标准实现之外,无需进行其他配置 ,以便支持到达目的地时付款。
预付
此配置用于指定服务的用量 必须在预订时全额付清。
预付款通过
prepayment_type
字段的
Service
。如需要求为某项服务付款,
应设置为 REQUIRED
,如下例所示。请注意,
价格的指定方式与到达时付费示例相同。在这里,
因为我们将预付款类型设置为要求,因此信用卡
此价格可在结账时收取。
JSON
{ "merchant_id": "merchant-1", "service_id": "service-2-b", "name": "Spa Treatment", "description": "A full spa treatment", "price": { "price_micros": "200000000", "currency_code": "USD" } "prepayment_type": "REQUIRED" }
预订服务器
接受预付款时,系统会将付款令牌传递到您的预订中
调用
通过字段 CreateBooking
payment_processing_parameters.unparsed_payment_method_token
。
您必须准确收取通过
并且必须使用币种
Feed 中指定的名称。这些扣款应遵循所述的流程
在
启用付款指南。
返回
CreateBookingResponse
必须将 booking.payment_information
字段设置为
反映已提供并处理了预付款。
通过
PaymentInformation
规范包含完整
所有付款信息选项的文档。一个典型的
有关处理预付款的具体说明。请务必确保
与
请求。此外,如果在 Feed/请求中指定了税率,
也必须包含在内。
另请注意,您必须提供交易 ID。此交易 ID 且必须至少在与该商家的交易中具有唯一性。答 交易 ID 的候选对象是提供给 。
JSON
{ "prepayment_status": "PREPAYMENT_PROVIDED", "payment_processed_by": "PROCESSED_BY_PARTNER", "payment_transaction_id": "[this-transaction-id]", "price": { "price_micros": "200000000", "currency_code": "USD" } }
违约金
如果用户未赴约,系统可能会向其收取违约金 预订,或者在预订结束之后 取消窗口。如果未指定任何取消窗口 默认为该空档的开始时间。
要指定违约金,请在服务 Feed 中添加
no_show_fee
字段,如以下示例所示:
JSON
{ "merchant_id": "merchant-1", "service_id": "service-2-b", "name": "Spa Treatment", "description": "A full spa treatment", "price": { "price_micros": 200000000, "currency_code": "USD" } "scheduling_rules": { "min_advance_online_canceling": 14400, } "no_show_fee": { "fee": { "price_micros": 25000000, "currency_code": "USD" } "fee_type": "FIXED_RATE_DEFAULT" } }
在上面的示例中,合作伙伴或商家有权
按照
no_show_fee.fee.price_micros
字段(如果预约持有者)
未参加预约。如果用户点击本子链接,
会在预约开始前的 4 小时(14400 秒)内取消
在 scheduling_rules.min_advance_online_canceling
中指定
字段。
如需了解如何在可用性级别定义违约金,请参阅 此部分。
预订服务器
处理包含违约金的请求时,付款令牌
在调用
通过字段 CreateBooking
payment_processing_parameters.unparsed_payment_method_token
。
此令牌的传递方式与预付款
这种情况。但是,由于令牌仅在短时间内
您必须调用付款处理方的相关 API 才能
请将此令牌升级为
。有关详情,请参阅“启用付款指南”部分
已开启
违约金令牌流程。
返回
CreateBookingResponse
booking.payment_information
字段必须设置
回显违约金的状态,如以下示例所示。
JSON
{ "prepayment_status": "PREPAYMENT_PROVIDED", "payment_processed_by": "PROCESSED_BY_PARTNER", "payment_transaction_id": "[this-transaction-id]", "price": { "price_micros": "200000000", "currency_code": "USD" } "no_show_fee": { "fee": { "price_micros": 25000000, "currency_code": "USD" } "fee_type": "FIXED_RATE_DEFAULT" } }
请注意,no_show_fee
已设置为反映价格和
可能收费的结构。另请注意,与
预付款,则此消息中必须提供 transaction_id
。
另请注意,在booking_id
CreateBookingResponse
在充电时必须发送的实时更新是必填字段
违约金此 ID 应与信息一起存储,
有关预订的信息。
实时更新
如果用户未到店完成预定的预订,或者取消了预订 (例如直接与您联系), 可以使用付款信息 您在预订时存储的付款信息。在收取违约金时,您需要发送 实时更新,指明收取违约金。
对于由以下用户创建的预订:
CreateBooking
,应向以下地址发送更新:
notification.partners.bookings.patch
。此请求的正文应为
已更新的预订,状态设置为
NO_SHOW_PENALIZED
。此状态告知 Google
。
例如,可将请求发送至:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status
使用请求正文:
JSON
{ "name": "partners/12345678/bookings/123123123" "merchantId": "merchant-1" "serviceId": "service-2-b" "status": "NO_SHOW_PENALIZED" }
押金
押金用于收取初始费用,这是 预订。押金可在预订时或日后收取 。您可能需要根据哪些条款确定可退还押金的 以及 何时可以在线取消预订。
要指定存款,您应在服务 Feed 中添加
deposit
字段,如以下示例所示:
JSON
{ "merchant_id": "merchant-1", "service_id": "service-2-b", "name": "Spa Treatment", "description": "A full spa treatment", "price": { "price_micros": 200000000, "currency_code": "USD" } "scheduling_rules": { "min_advance_online_canceling": 86400, } "deposit": { "deposit": { "price_micros": 25000000, "currency_code": USD, "min_advance_cancellation_sec": 14400, } "deposit_type": "FIXED_RATE_DEFAULT" } }
在此示例中,
min_advance_online_canceling
定义了取消窗口和
deposit.min_advance_cancellation_sec
定义了何时可退还这笔存款。请注意,在上面的示例中,存款可以指定
取消时间与退款期限分开计算。在这种情况下,用户将可以取消
在线访问该服务。这样可以确保商家
不过,用户可能仍然处于
最多可提前 4 小时获得押金退款
(14400 秒)(通过联系您或商家取消预订);
这会在结账时的条款和确认电子邮件中显示。
要了解如何在可用性级别定义存款,请参阅 此部分。
预订服务器
在处理包含存款的请求时,付款令牌
会传递到预订服务器
通过字段 CreateBooking
payment_processing_parameters.unparsed_payment_method_token
。
此令牌的传递方式与预付款中相同。如果您
在预订时收取押金或取出
处理此请求。
如果您希望稍后收取这笔存款 仅在短时间内被授权,您必须调用 付款处理方的相关 API 来将此令牌升级为 您可以保留下来供以后使用这是 启用付款指南部分 存入令牌流程。
返回
CreateBookingResponse
booking.payment_information
字段必须
正确回显存款状态,如下例所示。
JSON
{ "prepayment_status": "PREPAYMENT_PROVIDED", "payment_processed_by": "PROCESSED_BY_PARTNER", "payment_transaction_id": "[this-transaction-id]", "price": { "price_micros": "200000000", "currency_code": "USD" } "deposit": { "deposit": { "price_micros": 25000000, "currency_code": USD, "min_advance_cancellation_sec": 28800, } "deposit_type": "FIXED_RATE_DEFAULT" } }
请注意,这笔存款要反映
要收取或暂缓支付的押金。另请注意,与
预付款,则此消息中必须提供 transaction_id
。
实时更新
如果用户在存款取消期限之前取消预订,您将 必须退还您向用户卡中收取的所有押金。时间 退还押金时,您需要发送 实时更新,指明存款已退还。
对于由以下用户创建的预订:
CreateBooking
,应向以下地址发送更新:
notification.partners.bookings.patch
。在此正文的正文中,
请求应该是更新后的预订,状态设置为
CANCELED
和
“paymentInformation.prepaymentStatus
”字段已设置为
PREPAYMENT_REFUNDED
。通知 Google 该笔存款
已退款。
例如,可将请求发送至:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status
使用请求正文:
JSON
{ "name": "partners/12345678/bookings/123123123" "merchantId": "merchant-1" "serviceId": "service-2-b" "status": "CANCELED" "paymentInformation": { "prepaymentStatus": "PREPAYMENT_REFUNDED" } }
需要信用卡
一项服务可能会要求提供信用卡作为附加服务 用户身份验证。但您不能使用 预付费用、押金或违约金。如果这些用例 它们应使用以下步骤进行明确配置 。另请注意,要求提供信用卡通常会导致 这项服务的预订量显著下降
如果要求在结算时提供信用卡信息,您必须设置
将字段 require_credit_card
更改为
REQUIRE_CREDIT_CARD_ALWAYS
。
JSON
{ "merchant_id": "merchant-1", "service_id": "service-1-a", "name": "Men's haircut", "description": "One of our stylists will cut your hair", "price": { "price_micros": 15000000, "currency_code": "USD" }, "require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS" }
预订服务器
处理包含信用卡要求的请求时,付款
令牌传递至预订服务器,
通过字段 CreateBooking
payment_processing_parameters.unparsed_payment_method_token
。
此令牌的传递方式与预付款
这种情况。但是,由于令牌仅在短时间内
您必须调用付款处理方的相关 API 才能
请将此令牌升级为
。
预订服务器响应中不需要任何其他信息
在可用性级别覆盖价格
在上述所有示例中,价格 / 费用结构都指定了 在 Service 级别定义在大多数情况下,这种服务级别的价格应该是 。不过,在某些情况下,可以更改付款结构 特定可用性空档。例如,以下情况 可以通过在可用性级别替换价格 / 费用来处理:
- 每周二降价,周六上调。
- 如果空房在下午 5:00 到晚上 7:00 之间,不收取入场费。
下表针对每种付款方式 / 费用方式列出了应在 用于覆盖服务等级定义。
付款方式 | 费用 / 价格定义 | 是否可替换? |
---|---|---|
到店付款 | Service.price
|
价格替换依据
Availability.payment_option_id 引用
Merchant.payment_option
|
预付 | Service.price
|
可通过以下平台覆盖价格:
Availability.payment_option_id 引用
Merchant.payment_option
|
违约金 | Service.no_show_fee
|
Availability.no_show_fee
|
押金 | Service.deposit
|
Availability.deposit
|
需要信用卡 | Service.require_credit_card
|
Availability.require_credit_card
|
请注意,要在可用性级别替换价格,您必须先定义 在商家级别设置付款方式。此外,如需了解如何添加 取消时间范围,请参阅指南 如何添加取消窗口。