Skip to main content
Marshall 实现的ExternalSettlement将交易的授权和结算阶段分开。 Marshall 外围设备和 Nayax 设备负责管理与消费者和支付卡的初始交互,而最终的财务结算则由第三方服务器执行,该服务器会将结算请求发送到 Nayax 的服务器。
先决条件要使此流程正常运行,Nayax 必须启用ExternalSettlement设置。

配置和设备行为

启用后,Nayax Engine 会改变物理设备处理交易的方式:
  • 授权成功后,设备将不再发送自己的结算命令。
  • 交易在收到外部请求之前将保持未结算状态。
  • 结算交易的唯一方法是通过ExternalSettlement命令。
  • 对于多会话流程,“Close Session”命令不再适用;请改用 ExternalSettlement。
  • 要允许结算价格与授权金额不同(结算价格 ≤ 授权价格),请在 Marshall SDK 中启用 price not final 标志。
这样,您可以根据自己的业务逻辑灵活地从外部触发结算阶段,支持所有流程类型(预选/预授权)。
增量授权外部结算支持增量授权。请确保您的逻辑符合最大默认信用额度限制,以避免结算失败。更多信息请参阅增量授权文档。

管理未结算交易

当不提供产品或服务时,您必须主动管理交易,以保持良好的用户体验。
  • 外部取消:如果您知道不会发生结算,则必须立即发送外部取消。
  • **对消费者的影响:**如果交易在未取消或结算的情况下仍保持授权状态,消费者的资金将一直保留在其支付方式中,从而导致潜在的纠纷。

外部结算流

该流程包括两个阶段:由 Marshall 外围设备和 Nayax 设备处理的支付授权,以及由您的第三方服务器触发的结算或取消。

付款授权

以下步骤涵盖了授权阶段,从刷卡到会话结束。
  1. 消费者与外围设备发起交易。
  2. 该外设可启用 Nayax 的设备读卡器。
  3. 系统提示消费者出示银行卡。
  4. 消费者将卡出示给Nayax设备。
  5. 消费者会收到有关授权流程的通知。
  6. Nayax 设备向 Nayax 服务器发送授权请求。
  7. Nayax 服务器与计费提供商进行授权。
  8. 计费提供商向 Nayax 服务器发送授权响应(已批准)。
  9. Nayax 服务器将授权响应发送回 Nayax 设备。
  10. 外设的SDK触发“会话开始”事件:
这是向外围设备(例如自动售货机)发出的信号,以准备批准付款。
  1. 机器显示屏显示:“请选择产品。”消费者选择产品后,外围设备的 SDK 会向 Nayax 设备发送“供应商请求”。
  1. 外围设备的 SDK 处理通过 Transfer Data 命令接收的交易数据(包括 Nayax 交易 ID 和卡片详细信息):
此时,外围设备必须保留收到的(Nayax 的)Transaction ID 和 Site ID,以便稍后用于 External Settlement/External Cancel。
  1. 可选:外围设备的 SDK 可以向 Nayax 设备回传其自有的 Transaction 编号(此信息不会在任何地方被使用,仅供外围设备希望在其 SDK 日志中显示自己的 Transaction ID 时使用)。
  2. Nayax 的设备发送“Vend Approved”消息,触发外围设备的 SDK “vend approved” 事件:
  1. 外围设备向消费者分发产品或提供服务,SDK 报告成功并完成本地会话:
  1. 外围设备发送 Session Complete 以表示当前交易过程已完成(尚未结算)。
  2. Nayax 的设备向外围设备发送 End Session。
  3. 外围设备发送 Reader Disable,使读卡器进入待机状态。

完成交易

会话结束后,第三方服务器会根据服务是否已提供来处理结算或取消事宜。 如果提供了该服务:
  1. 第三方服务器通过使用加密密码调用 StartAuthentication 方法来发起通信以进行身份验证。
  2. Nayax 服务器解密密码,验证凭据和时间戳以确认真实性。
  1. 第三方服务器发送 ExternalSettlement 请求。该请求必须包含:NayaxTransactionId、SiteId(从交易的 Transfer Data 命令中获取的信息),并且必须在消费者卡片获得授权后的 48 小时内发送。
    • 要允许结算价格与授权金额不同(结算价格 ≤ 授权价格),请在 Marshall SDK 中启用 price not final 标志。
  2. 外围设备通知服务器交易已完成。
  3. 第三方服务器启动身份验证过程。
  4. Nayax服务器发送响应。
  5. Nayax 的服务器向第三方服务器发送ExternalSettlement响应。
  6. Nayax 的服务器会将结算信息通知设备。
  7. Nayax 的设备会通知消费者,交易已按最终收费金额结算。
  8. Nayax 服务器发送外部结算响应。
如果未提供服务:
  1. 第三方服务器启动身份验证过程。
  2. Nayax服务器发送响应。
  3. 第三方服务器发送 ExternalCancel 请求。该请求必须包含:NayaxTransactionId、SiteId(从交易的 Transfer Data 命令中获取的信息),并且必须在消费者卡片获得授权后的 48 小时内发送。
  4. Nayax 服务器与支付提供商发起取消流程。
  5. Nayax 的服务器会收到来自支付提供商的响应。
  6. Nayax 的服务器向第三方服务器发送ExternalCancel响应。

下一步

外部结算 API

用于结算来自第三方服务器的授权交易的 ExternalSettlement 端点的 API 参考。

外部取消 API

用于在未提供服务时取消已授权交易的 ExternalCancel 端点的 API 参考。

增量授权

适用于外部结算的增量授权和最高违约信用额度详情。