金牛支付 · API 文档

v1.0.0 · 仅支持金牛钱包官方接入

鉴权方式

所有需鉴权的接口都使用 HMAC-SHA256 签名校验。每次请求需要携带以下 5 个 HTTP 头:

重要:Secret 仅在创建密钥时一次性展示,请妥善保存。如遗失请到「个人中心 → API 密钥」吊销后重新创建。

请求头

Header说明必填
X-JNQJ-Key 密钥 ID(公开部分,以 jk_ 开头)
X-JNQJ-Secret 密钥 Secret(私密部分,以 sk_ 开头)
X-JNQJ-Timestamp 当前 Unix 时间戳(秒),须在 5 分钟内有效
X-JNQJ-Nonce 随机字符串(建议 8-32 位),用于防重放
X-JNQJ-Signature 签名值,见下方算法
X-Idempotency-Key 幂等键(仅写接口)。同一键 10 分钟内重复请求返回首次结果 可选

签名算法

签名公式:

signature = HMAC-SHA256( data = key_id + timestamp + nonce, secret = your_secret )

PHP 实现示例:

<?php $keyId = "jk_xxxxxxxxxxxxxxxx"; $secret = "sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; $timestamp = time(); $nonce = bin2hex(random_bytes(8)); $signature = hash_hmac("sha256", $keyId . $timestamp . $nonce, $secret); $headers = [ "X-JNQJ-Key: " . $keyId, "X-JNQJ-Secret: " . $secret, "X-JNQJ-Timestamp: " . $timestamp, "X-JNQJ-Nonce: " . $nonce, "X-JNQJ-Signature: " . $signature, ];

安全机制

5 分钟时间窗:时间戳偏差超过 300 秒的请求将被拒绝。

IP 白名单:可在密钥创建时配置允许的 IP 列表(每行一个)。

Scope 隔离:每个密钥需指定权限范围(query / collection / refund)。

速率限制:默认 60 次/分钟,超过返回 429

幂等性:写接口支持 X-Idempotency-Key,重复请求安全。

审计追踪:所有 API 调用均记录到审计日志,可追溯到操作者、IP、时间。