- 基于令牌的识别将请求与您的帐户关联起来。
- 使用共享密钥(
Sign Key)的 HMAC 签名,以确保请求正文在传输过程中未被篡改。
Sign Key 对每个请求正文进行签名,并附加两个必需的请求头:Signature 和 IntegratorId。
先决条件
开始之前,请确保您拥有以下资源:- 有效的签名密钥(由 Nayax 共享,通常为 16 个字符)
- 关联的签名密钥 ID
验证请求
拥有所需的资源后,您可以按照以下步骤开始向 Spark 验证您的 API 请求:-
准备包含所有必要字段(例如
TerminalId、Cipher等)的 JSON 正文。以下是 StartAuthentication 端点的简化示例: -
序列化 JSON 请求内容,删除空格和换行符。请勿更改值或添加转义符,除非它们是实际负载的一部分。
我们在示例中使用了这款JSON 代码检查工具。结果如下。

-
请按照以下步骤生成
Signature头:-
将序列化的请求和签名密钥连接起来,用“;”分隔。
-
使用 SHA-256 算法(UTF-8 编码)对结果进行哈希处理:
We used this tool to do so in the example. Use the output as your

Signatureheader.
-
将序列化的请求和签名密钥连接起来,用“;”分隔。
-
将
IntegratorId和Signature头添加到您的请求中。基本 URLSpark API 的基础 URL 为https://nayax-spark-dmz.nayax.com/api。集成环境和生产环境使用同一个主机。
/StartAuthentication method was used, but the process is relevant for any Spark endpoint request and response.
构建 cipher
您的密文由以下部分组成:
- 一个 36 个字符的 Spark 事务 ID(一个带有连字符的 GUID)。
- 单个 ”=” 字符。
- 一个 17 个字符的字母数字随机字符串。
- 一个 10 个字符的
YYMMDDhhmm格式 UTC 时间戳。
- 将 Spark 事务 ID、“=”字符、随机字符串和时间戳连接起来,形成 64 个字符的密文,如下例所示:
- 从提供的令牌中提取最右侧的 32 个字符,以创建 256 位 AES 加密密钥。例如,假设令牌如下:
加密密钥如下:
- 使用 ECB 模式的 AES 加密 64 个字符的密文。确保明文已填充(例如,使用 PKCS7)至 16 字节的倍数。对生成的加密字节进行 Base64 编码以进行传输,这将产生类似于以下示例的输出:
参见
交互式身份验证工具
在浏览器中构建和检查旧版密文与
Signature 请求头,无需编写代码。交易流程
身份验证如何融入完整的 Spark 交易流程。