> ## Documentation Index
> Fetch the complete documentation index at: https://devzone.nayax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 预付卡

预付卡交易的工作方式与信用卡支付类似,但用于预先充值的卡片。这些卡不需要连接到银行账户,因此非常适合封闭式系统,例如礼品卡或忠诚度卡。预付卡在交易过程中会进行验证,以确保有足够的余额支付本次购买。

Cortina 支持两种预付卡交易流程:

* 预选
* 预授权

这两种流程都涉及多个组件之间的交互,包括持卡人(CardHolder)、Nayax 设备、机器(MDB)、Nayax 引擎(Nayax Engine)以及集成方(Integrator)。请参阅以下各节以了解每种流程的更多详情。

## 预选

预选流程将产品/服务选择和授权步骤合并为一个交易，从而简化了支付流程。此流程通常用于小额或快速交易，消费者的选择和付款授权可在一个步骤中同时处理。

参见下图：

<Frame>
  <img src="https://mintcdn.com/nayax-44d6e37b/9ym-pj7QfKHLEgIX/images/docs/prepaid-card-flows/Cortina%20V2%20External%20Prepaid%20API%20-%20Pre-selection.png?fit=max&auto=format&n=9ym-pj7QfKHLEgIX&q=85&s=6d5da7c954ae6645b471b03c0fe5c21c" width="2370" height="2024" data-path="images/docs/prepaid-card-flows/Cortina V2 External Prepaid API - Pre-selection.png" />
</Frame>

该过程的步骤如下：

1. 消费者将卡片（插入、轻触或刷卡）给 Nayax 设备。
2. Nayax 设备向运营商服务机器(Operator Service Machine)发送开始出售会话(Begin Vending Session,Default、credit 等)命令。
3. 消费者选择商品,运营商服务机器随即向 Nayax 设备发送 Vend Request(代码、价格等)。
4. Nayax 设备向 Nayax 服务器发送授权命令请求。
5. Nayax 服务器通过[“开始会话”](/reference/cortina/cortina/post-start-session)端点向支付提供商发送“开始会话”请求。
6. The Nayax Server sends a /Sale request (default, credit...) to the Payment Provider via the [Prepaid Sale](/reference/cortina/cortina-prepaid/cortina-prepaid-sale) endpoint.
7. Nayax 服务器向 Nayax 设备返回授权命令响应（已批准）。
8. Nayax 设备向操作员服务机发送 Vend Approved 命令。
9. 操作员服务机分发产品，并向 Nayax 设备发送销售成功通知。
10. Nayax 设备向 Nayax 服务器发送结算命令请求。
11. (Optional) The Nayax Server sends a /SaleEndNotification (TransactionID...) to the Payment Provider via the [Sale End Notification](/reference/cortina/cortina/post-sale-end-notification) endpoint.
12. Nayax 服务器向 Nayax 设备返回结算命令响应（始终批准），然后 Nayax 设备显示“谢谢”消息。

由于授权已被授予，因此此响应通常始终在此流程中获得批准。

### 异常处理

如果任何关键节点（图中以黑圈标记）发生故障，交易将终止。由于此流程中付款发生在产品发放之前，因此需要特定的作废逻辑来确保客户不会因发放失败而被收费。

| 设想 | 图示步骤参考 | 技术决议 |
| :- | :- | :- |
| 选择超时 | 3.b | 如果消费者在机器允许的时间内未能选择有效商品，则会发生这种情况。会话将在任何付款流程开始之前关闭。 |
| 会话启动失败 | 5.b | 当 `/Start Session` 请求失败或超时时发生。交易将在 Sale 请求之前中止。 |
| 销售请求失败 | 6.b | If the `/Sale` request fails, returns an error, or receives a **`992`** response code, the session is aborted. In cases of a gateway timeout, the [Prepaid Void](/reference/cortina/cortina-prepaid/cortina-prepaid-void) endpoint is triggered with the flag `isGatewayTimeout: True`. |
| 销售失败 | 9.b | 如果付款授权后机器未能出货，Nayax 引擎会触发[预付撤销](/reference/cortina/cortina-prepaid/cortina-prepaid-void)端点来撤销收费。 |
| 通知失败 | 11.b | 当可选的 `/SaleEndNotification` 失败时发生。由于这是一个报告步骤,设备上的交易通常仍会完成,但该错误会被记录以供对账使用。 |

<Note>
  有关财务响应代码和授权失败的完整列表，请参阅[预付卡拒绝原因](/docs/cortina/prepaid-card/prepaid-card-decline-reasons)页面。
</Note>

## 预授权

预授权流程用于需要两步处理的交易。首先发起一个会话,随后进行授权检查。此流程确保交易有效,并且消费者在预付卡上有足够的余额以完成结算。

参见下图：

<Frame>
  <img src="https://mintcdn.com/nayax-44d6e37b/9ym-pj7QfKHLEgIX/images/docs/prepaid-card-flows/Cortina%20V2%20External%20Prepaid%20API%20-%20Pre-auth.png?fit=max&auto=format&n=9ym-pj7QfKHLEgIX&q=85&s=3f66881e68c42983b953c052c18f28c9" width="2370" height="2024" data-path="images/docs/prepaid-card-flows/Cortina V2 External Prepaid API - Pre-auth.png" />
</Frame>

在哪里：

1. 消费者将卡片（插入、轻触或刷卡）给 Nayax 设备。
2. Nayax 设备向 Nayax 服务器发送授权命令请求。
3. Nayax 服务器通过[“开始会话”](/reference/cortina/cortina/post-start-session)端点向支付提供商发送“开始会话”请求。
4. 支付提供商向 Nayax 服务器返回“启动会话响应成功”。
5. Nayax 服务器通过[预付费授权](/reference/cortina/cortina-prepaid/cortina-prepaid-authorization)端点向支付提供商发送 /Authorization 请求（默认金额）。
6. Nayax 服务器向 Nayax 设备返回授权命令响应（已批准）。
7. Nayax 设备向运营商服务机器(Operator Service Machine)发送开始出售会话(Begin Vending Session,Default Code 等)命令。
8. 消费者选择商品,运营商服务机器随即向 Nayax 设备发送 Vend Request(代码、价格等)。
9. Nayax 设备向操作员服务机发送 Vend Approved（始终批准）响应。
10. 产品已分发，操作员服务机向 Nayax 设备发送销售成功通知。
11. Nayax 设备向 Nayax 服务器发送结算命令。
12. Nayax 服务器通过[预付结算](/reference/cortina/cortina-prepaid/cortina-prepaid-settlement)端点向支付提供商发送 /结算请求（最终金额）。
13. Nayax 服务器向 Nayax 设备返回结算命令响应（已批准），然后 Nayax 设备显示“谢谢”消息。

### 异常处理

如果任何关键节点（图中以黑圈标记）发生故障，事务将终止。下表概述了 Nayax 引擎采取的恢复措施：

| 设想 | 图示步骤参考 | 技术决议 |
| :- | :- | :- |
| 会话启动失败 | 4.b | 当 `/Start Session` 请求超时或返回错误时发生。该会话将立即被中止。 |
| 授权失败 | 5.b | 如果服务提供商拒绝支付默认信用额度，则会发生这种情况。交易终止。 |
| 选择超时 | 8.b | 如果消费者未在机器允许的时间范围内选择有效产品，则会发生这种情况。 |
| 销售失败 | 10.b | 如果机器无法出钞（例如，卡钞），系统将触发[预付取消](/reference/cortina/cortina-prepaid/cortina-prepaid-cancel)端点以释放预授权和交易。 |
| 结算失败 | 12.b | 如果最终结算请求失败或超时，则会发生这种情况。这需要系统记录日志以便进行人工核对。 |
| 超时/无效 | 不适用 | 如果在超时期限内未收到销售响应(Sale Response),或收到 `992` 响应代码,将触发预付撤销端点([Prepaid Void](/reference/cortina/cortina-prepaid/cortina-prepaid-void) endpoint)。 |

<Note>
  有关财务响应代码和授权失败的完整列表，请参阅[预付卡拒绝原因](/docs/cortina/prepaid-card/prepaid-card-decline-reasons)页面。
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.