Skip to main content
Nayax 的单会话支付仅允许处理一笔交易。与可同时运行多笔交易的多会话支付不同,系统会先处理单用户支付会话,然后再重置。 本页将更详细地指导您在 C SDK 中实现单个会话。为了更好地解释此过程,代码实现分为以下步骤:
  1. 包含库文件
  2. 设置宏和全局变量
  3. 设置私有函数
  4. 添加初始化函数
  5. 实现主函数
有关每个步骤的更多详细信息,请参阅以下部分。

步骤 1:包含库文件

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

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

下面的代码定义了模块的日志/调试名称的宏,并设置了全局变量来存储配置和会话相关数据。
C
在哪里:
  • config:存储自动售货机配置。
  • session_product:表示售卖会话中的一个商品。
  • session:表示正在进行的售卖会话。
  • menu:存储菜单相关设置。
  • com_id:表示通信 ID(默认值为 -1)。

步骤 3:设置私有函数

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

调试输出函数

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

CPU 定时器节拍

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

VMC 链路事件处理程序

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

销售请求处理程序

此功能管理会话及其包含的项目,然后向 VPOS 发送售货请求。
C

VMC 售货事件处理程序

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

步骤 4:设置初始化函数

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

初始化 VMC

此函数初始化 VMC 配置并注册事件处理程序。
C

初始化菜单

在初始化菜单之前,请添加必要的处理程序函数。请参见下方代码:
C

步骤 5:实现主功能

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