设置不同的付款方式

Actions Center 平台支持各种配置 是一件非常困难的事情通过 “启用付款”指南涵盖了需要集成的 是所有付款集成通用的,包括:

  1. 将 Feed 配置为包含 tokenization_parameter 信息
  2. 更新预订服务器以接受“payment_method_token” 对象
  3. 用户、操作中心和 合作伙伴 / 商家和付款处理方。

在本指南中,我们将更详细地介绍 配置 Feed以指定哪些不同类型的 Feed 付款配置适用于您的商家和服务。

  1. 无需付款 / 到达时付款
  2. 全额预付款
  3. 违约金 / 取消费
  4. 押金

付款的所有用例都是免付费的延伸 / 到达时付费用例(无需配置付款),因此 教程将首先介绍该配置, 作为扩展

每个部分还将介绍要在 预订服务器才能接受特定的付款 配置。

无需付款 / 到达时付款

对于在预订时不需要支付任何费用的服务, 无需在商家或服务配置付款 。不过,您仍需提供价格信息。

这是服务的基准配置,其中包含 名称、说明和价格这是一条服务消息 以 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,如下例所示。请注意, 价格的指定方式与到达时付费示例相同。在这里, 因为我们将预付款类型设置为要求,因此信用卡 此价格可在结账时收取。

<ph type="x-smartling-placeholder">

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 中指定 字段。

<ph type="x-smartling-placeholder">

如需了解如何在可用性级别定义违约金,请参阅 此部分

预订服务器

处理包含违约金的请求时,付款令牌 在调用 通过字段 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 秒)(通过联系您或商家取消预订); 这会在结账时的条款和确认电子邮件中显示。

<ph type="x-smartling-placeholder">

要了解如何在可用性级别定义存款,请参阅 此部分

预订服务器

在处理包含存款的请求时,付款令牌 会传递到预订服务器 通过字段 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

请注意,要在可用性级别替换价格,您必须先定义 在商家级别设置付款方式。此外,如需了解如何添加 取消时间范围,请参阅指南 如何添加取消窗口