配置和设备行为
启用后,Nayax Engine 会改变物理设备处理交易的方式:- 授权成功后,设备将不再发送自己的结算命令。
- 交易在收到外部请求之前将保持未结算状态。
- 结算交易的唯一方法是通过ExternalSettlement命令。
- 对于多会话流程,“Close Session”命令不再适用;请改用 ExternalSettlement。
- 要允许结算价格与授权金额不同(结算价格 ≤ 授权价格),请在 Marshall SDK 中启用
price not final标志。
增量授权外部结算支持增量授权。请确保您的逻辑符合最大默认信用额度限制,以避免结算失败。更多信息请参阅增量授权文档。
管理未结算交易
当不提供产品或服务时,您必须主动管理交易,以保持良好的用户体验。- 外部取消:如果您知道不会发生结算,则必须立即发送外部取消。
- **对消费者的影响:**如果交易在未取消或结算的情况下仍保持授权状态,消费者的资金将一直保留在其支付方式中,从而导致潜在的纠纷。
外部结算流
该流程包括两个阶段:由 Marshall 外围设备和 Nayax 设备处理的支付授权,以及由您的第三方服务器触发的结算或取消。付款授权
以下步骤涵盖了授权阶段,从刷卡到会话结束。
- 消费者与外围设备发起交易。
- 该外设可启用 Nayax 的设备读卡器。
- 系统提示消费者出示银行卡。
- 消费者将卡出示给Nayax设备。
- 消费者会收到有关授权流程的通知。
- Nayax 设备向 Nayax 服务器发送授权请求。
- Nayax 服务器与计费提供商进行授权。
- 计费提供商向 Nayax 服务器发送授权响应(已批准)。
- Nayax 服务器将授权响应发送回 Nayax 设备。
- 外设的SDK触发“会话开始”事件:
- 机器显示屏显示:“请选择产品。”消费者选择产品后,外围设备的 SDK 会向 Nayax 设备发送“供应商请求”。

- 外围设备的 SDK 处理通过 Transfer Data 命令接收的交易数据(包括 Nayax 交易 ID 和卡片详细信息):
- 可选:外围设备的 SDK 可以向 Nayax 设备回传其自有的 Transaction 编号(此信息不会在任何地方被使用,仅供外围设备希望在其 SDK 日志中显示自己的 Transaction ID 时使用)。
- Nayax 的设备发送“Vend Approved”消息,触发外围设备的 SDK “vend approved” 事件:
- 外围设备向消费者分发产品或提供服务,SDK 报告成功并完成本地会话:
- 外围设备发送
Session Complete以表示当前交易过程已完成(尚未结算)。 - Nayax 的设备向外围设备发送
End Session。 - 外围设备发送
Reader Disable,使读卡器进入待机状态。
完成交易
会话结束后,第三方服务器会根据服务是否已提供来处理结算或取消事宜。 如果提供了该服务:- 第三方服务器通过使用加密密码调用
StartAuthentication方法来发起通信以进行身份验证。 - Nayax 服务器解密密码,验证凭据和时间戳以确认真实性。

- 第三方服务器发送 ExternalSettlement 请求。该请求必须包含:
NayaxTransactionId、SiteId(从交易的 Transfer Data 命令中获取的信息),并且必须在消费者卡片获得授权后的 48 小时内发送。- 要允许结算价格与授权金额不同(结算价格 ≤ 授权价格),请在 Marshall SDK 中启用
price not final标志。
- 要允许结算价格与授权金额不同(结算价格 ≤ 授权价格),请在 Marshall SDK 中启用
- 外围设备通知服务器交易已完成。
- 第三方服务器启动身份验证过程。
- Nayax服务器发送响应。
- Nayax 的服务器向第三方服务器发送ExternalSettlement响应。
- Nayax 的服务器会将结算信息通知设备。
- Nayax 的设备会通知消费者,交易已按最终收费金额结算。
- Nayax 服务器发送外部结算响应。

- 第三方服务器启动身份验证过程。
- Nayax服务器发送响应。
- 第三方服务器发送 ExternalCancel 请求。该请求必须包含:
NayaxTransactionId、SiteId(从交易的 Transfer Data 命令中获取的信息),并且必须在消费者卡片获得授权后的 48 小时内发送。 - Nayax 服务器与支付提供商发起取消流程。
- Nayax 的服务器会收到来自支付提供商的响应。
- Nayax 的服务器向第三方服务器发送ExternalCancel响应。
下一步
外部结算 API
用于结算来自第三方服务器的授权交易的 ExternalSettlement 端点的 API 参考。
外部取消 API
用于在未提供服务时取消已授权交易的 ExternalCancel 端点的 API 参考。
增量授权
适用于外部结算的增量授权和最高违约信用额度详情。