Skip to main content
多会话支付允许独立处理多笔交易,从而确保在自助服务环境中获得无缝的用户体验。 本页将指导您更详细地使用 C SDK 实现多会话支付。为了更好地解释此过程,代码实现分为以下步骤:
  1. 包含库文件
  2. 设置宏和全局变量
  3. 设置私有函数
  4. 添加初始化函数
  5. 实现主函数
有关每个步骤的更多详细信息,请参阅以下部分。

步骤 1:包含库文件

首先包含 SDK 所需的库文件。请参见下方代码块:
C

步骤 2:设置宏和全局变量

下方代码定义了用于日志记录/调试的模块名称宏,并设置了用于存储配置和会话相关数据的全局变量。
C
在哪里:
  • config:存储自动售货机配置。
  • session_products:表示两个商品的 array,每个会话一个。
    • 第一个是针对会话 0。
    • 第二个是针对第 1 场会议的。
  • sessions:表示两个活动会话的 array。
  • current_session:跟踪活动会话。
  • menu:存储菜单相关设置。
  • com_id:表示通信 ID。

步骤 3:设置私有函数

实现用于调试、事件处理和交易处理的辅助函数。以下各部分提供了更多详情。

调试输出函数

此函数用于确定调试信息的输出流。
C
在哪里:
  • str:包含调试信息的 string。

CPU 定时器节拍

此函数由平台定时器定期调用(每 5-10 毫秒一次)。
C
在哪里:
  • p:指向可选参数的指针(此函数中未使用)。

VMC 链路事件处理程序

此函数处理链路事件并记录相关信息。
C
在哪里:
  • event_id:链接事件的类型。
  • data:指向可选参数的指针(根据事件类型而变化)。
该函数将始终返回布尔值 __false,因为未确定成功/失败。

多会话销售请求处理程序

此函数管理会话及其包含的项目,然后向 Nayax 设备发送售货请求。请参见以下代码块:
C
它初始化 session_products 0 和 1,每个都具有不同的商品代码和价格。每一个都将是一个单独的会话(交易)。 当然,这是一个演示应用,这意味着您可以(也应该)管理自己的商品和价格,以匹配您的外围设备。

多会话出货事件处理器

此功能处理多会话的销售事件并记录相关信息。
C
在哪里:
  • event_id:售卖事件的类型。
  • data:指向可选参数的指针。根据事件类型而变化。
此函数将返回一个布尔值:
  • 大多数情况下为 __false。
  • __true 用于vmc_vend_event_on_vend_approved,表示出货批准成功。

步骤 4:设置初始化函数

添加辅助函数后,您需要实现用于初始化 VMC 配置和菜单处理程序的函数。请参见下方各部分了解更多详情。

初始化 VMC

此函数用于初始化 VMC 配置并注册事件处理程序。请参见下方代码:
C
由于这是多会话支付, config.multi_session_support 被设置为__true。

初始化菜单

在初始化菜单之前,请添加必要的处理程序函数。请参见下方代码:
C
现在,您可以初始化链接之前创建的处理程序的菜单。请参阅下面的代码。
C

步骤 5:实现主函数

在实现所有其他部分之后,您可以添加程序的主入口点,该入口点会初始化与外围设备的链路及菜单,然后启动一个运行菜单的无限循环。请参见下方代码:
C