← 返回控制台

概述

嗨付卡台 GPT协议充值系统提供完整的 RESTful API,支持第三方系统对接。通过 API 您可以:

Base URL:

https://cdk.hifupay.com

支持的套餐和地区:

套餐plan 值推荐地区货币
ChatGPT PlusplusPH(菲律宾)PHP
ChatGPT Pro 5xpro_x5EG(埃及)EGP
ChatGPT Pro 20xpro_x20PH(菲律宾)PHP

支持的地区代码:

代码地区货币
US美国USD
PH菲律宾PHP
EG埃及EGP
IN印度INR
TR土耳其TRY
AR阿根廷ARS
NG尼日利亚NGN
BR巴西BRL

认证方式

API 采用 密钥认证(永久有效):

  1. 获取密钥:在 cdk.hifupay.com 使用嗨付Pay API Key 登录,登录成功后点击「🔑 密钥」即可查看您的专属 API 密钥(永久有效)
  2. 接口调用:所有 API 请求在 Header 中携带密钥,支持以下三种方式(任选其一)
// 方式一:X-Api-Key(推荐)
{ "X-Api-Key": "您的API密钥", "Content-Type": "application/json" }

// 方式二:Authorization Bearer
{ "Authorization": "Bearer 您的API密钥", "Content-Type": "application/json" }

// 方式三:X-Session-Token(兼容旧版)
{ "X-Session-Token": "您的API密钥", "Content-Type": "application/json" }
API 密钥永久有效,无需定期刷新。同一嗨付Pay账号多次登录获取的是同一个密钥。

错误处理

所有 API 请求失败时返回统一的错误格式:

{
  "error": "错误描述信息(中文)"
}

HTTP 状态码说明:

状态码含义处理建议
200请求成功正常处理响应数据
400参数错误检查请求参数是否完整正确
401未授权API 密钥无效,请在 cdk.hifupay.com 登录获取
403禁止访问无权操作该资源(如他人的任务)
404资源不存在任务 ID 不存在
429请求过于频繁降低请求频率,建议间隔 3-5 秒
500服务器内部错误稍后重试或联系客服
建议在代码中对 429 做退避重试(等待 3-5 秒后重试)。

登录获取密钥

POST/api/hfp/login

使用嗨付Pay API Key 登录系统,获取永久 API 密钥。同一账号重复登录返回相同密钥。

请求参数 (Body JSON)

参数类型必填说明
apiKeystring嗨付Pay 后台获取的 API Key
platformstring平台标识:hifupay / haifupay / haifupaytop

成功响应

{
  "success": true,
  "balance": {
    "walletBalance": 208.45,
    "cardBalance": 101.77,
    "totalBalance": 310.22,
    "currency": "USD"
  },
  "sessionToken": "8a0d812cdcc78a4c...",
  "apiKey": "8a0d812cdcc78a4c..."
}

失败响应

{
  "success": false,
  "error": "API 密钥无效或已过期"
}

代码示例

// Node.js 示例
const resp = await fetch('https://cdk.hifupay.com/api/hfp/login', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    apiKey: 'sk_your_api_key_here',
    platform: 'hifupay'
  })
});
const data = await resp.json();
const apiKey = data.apiKey; // 永久有效的 API 密钥,保存后用于所有接口调用

创建充值任务

POST/api/start

创建一个 GPT 协议充值任务。系统将自动完成从创建订单到支付确认的全流程。

请求头

Header说明
X-Api-Key登录后获取的永久 API 密钥(推荐)
Content-Typeapplication/json

请求参数 (Body JSON)

参数类型必填说明
tokenstringChatGPT Session Token(完整 JSON 或纯 accessToken)
planstring套餐类型:plus(默认) / pro_x5 / pro_x20
regionstring计费地区,默认 PH
hfpCardIdstring嗨付Pay 卡片ID(与直接填卡号二选一)
cardNumberstring卡号(与 hfpCardId 二选一)
expMonthstring到期月份,如 06
expYearstring到期年份,如 31
cvcstring安全码
卡片信息提供方式二选一:① 直接填写卡号+有效期+CVC;② 传入 hfpCardId,系统自动读取卡片信息。推荐使用 hfpCardId。

成功响应

{
  "taskId": "TMSR07F4I"
}

失败响应

// 参数错误
{ "error": "请输入 Session Token" }

// 卡片错误
{ "error": "嗨付Pay卡片错误: 获取卡片信息超时" }

// 频率限制
{ "error": "请求过于频繁,请稍后再试" }

代码示例

// 使用 hfpCardId 方式
const resp = await fetch('https://cdk.hifupay.com/api/start', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-Api-Key': '您的API密钥'
  },
  body: JSON.stringify({
    token: 'ChatGPT的Session Token内容',
    plan: 'plus',
    region: 'PH',
    hfpCardId: 'card_123456'
  })
});
const { taskId } = await resp.json();
console.log('任务已创建:', taskId);

查询任务状态

GET/api/status/:taskId

查询指定任务的执行状态和最新日志。

路径参数

参数说明
taskId创建任务时返回的任务ID

成功响应

{
  "taskId": "TMSR07F4I",
  "status": "completed",
  "logs": [
    {"ts": "12:14:08", "text": "🚀 任务开始执行...", "level": "info"},
    {"ts": "12:14:09", "text": "GPT 账号: user@email.com", "level": "info"},
    {"ts": "12:14:53", "text": "✅ 协议充值全流程完成!", "level": "success"}
  ],
  "error": null,
  "account": "user@email.com"
}

status 字段说明:

含义说明
running执行中任务正在运行,可通过 SSE 实时获取日志
completed成功充值全流程完成
failed失败查看 error 字段获取失败原因

常见错误信息

error 内容原因处理建议
令牌已过期Session Token 已失效用户需重新登录 ChatGPT 获取新 Token
该账号已有订阅账号已有 Plus/Pro需先取消当前订阅
支付被拒绝银行卡扣款失败检查卡内余额或更换卡片
操作过于频繁ChatGPT API 限速等待 5-10 分钟后重试
该账号不符合订阅条件账号被限制更换 ChatGPT 账号

获取任务日志

GET/api/logs/:taskId

获取任务的完整执行日志(适用于非实时查询场景)。

成功响应

{
  "logs": [
    {"ts": "12:14:08", "text": "🚀 任务开始执行...", "level": "info"},
    {"ts": "12:14:09", "text": "[1/9] 创建订单...", "level": "info"},
    ...
  ]
}

停止任务

POST/api/stop/:taskId

停止正在执行的任务。

成功响应

{ "ok": true }

失败响应

// 任务不存在
{ "error": "Task not found" }

// 非本人任务
{ "error": "无权操作此任务" }

任务列表

GET/api/tasks

获取当前用户的所有任务列表(最近100条),按创建时间倒序。

成功响应

[
  {
    "taskId": "TMSR07F4I",
    "status": "completed",
    "logCount": 45,
    "error": null,
    "account": "user@email.com",
    "plan": "pro_x20",
    "region": "PH",
    "createdAt": "2026-08-13T04:14:33.039Z"
  },
  ...
]

队列状态

GET/api/queue-status

查看系统当前任务队列状态(无需认证)。

成功响应

{
  "running": 1,
  "max": 3,
  "queued": 2
}
字段说明
running当前正在执行的任务数
max最大并发任务数
queued队列中等待的任务数
下单前可先查询队列状态,当 running < max 时任务会立即执行,否则进入排队。

查询余额

POST/api/hfp/balance

查询嗨付Pay账户的钱包余额和卡内余额。

成功响应

{
  "success": true,
  "balance": {
    "walletBalance": 208.45,
    "cardBalance": 101.77,
    "totalBalance": 310.22,
    "currency": "USD"
  }
}

失败响应

{
  "success": false,
  "error": "嗨付API连接超时,请稍后重试"
}

卡片列表

POST/api/hfp/cards

获取当前用户绑定的所有虚拟卡片列表。

成功响应

{
  "success": true,
  "cards": [
    {
      "id": 69,
      "cardNo": "5259620149346308",
      "lastFour": "6308",
      "binCode": "525962",
      "cvv": "586",
      "expiryDate": "12/28",
      "status": "active",
      "balance": 83.52,
      "currency": "USD",
      "createdAt": "2026-08-13 12:46:42",
      "note": ""
    },
    ...
  ]
}

卡片详情(敏感信息)

POST/api/hfp/card-sensitive

获取卡片的完整卡号、CVV、有效期等敏感信息。

请求参数

参数类型说明
cardIdstring卡片 ID

成功响应

{
  "success": true,
  "data": {
    "id": 69,
    "cardNo": "5259620149346308",
    "fullCardNo": "5259620149346308",
    "expiryDate": "12/28",
    "cvv": "586"
  }
}
为防止频繁请求被限流,建议缓存卡片敏感信息,请求间隔不低于 1 秒。

开卡

POST/api/hfp/open-card

开通新的虚拟卡。

请求参数

参数类型说明
countnumber开卡数量(1-10)
amountnumber每张卡初始充值金额(美元)

成功响应

{
  "success": true,
  "data": {
    "cards": ["card_new1", "card_new2"],
    "message": "开卡成功"
  }
}

失败响应

{
  "success": false,
  "error": "余额不足,无法开卡"
}

卡片充值

POST/api/hfp/card-load

向指定卡片充入资金。

请求参数

参数类型说明
cardIdstring卡片 ID
amountnumber充值金额(美元)

成功响应

{
  "success": true,
  "data": { "message": "充值成功" }
}

卡片提现

POST/api/hfp/card-unload

从指定卡片提取资金回钱包。

请求参数

参数类型说明
cardIdstring卡片 ID
amountnumber提现金额(美元)

成功响应

{
  "success": true,
  "data": { "message": "提现成功" }
}

SSE 实时日志流

GET/api/stream/:taskId?s=API_KEY

通过 Server-Sent Events (SSE) 实时获取任务执行日志。连接后会先推送历史日志,再实时推送新日志。

连接参数

参数位置说明
taskId路径任务 ID
sQueryAPI 密钥(URL编码)

事件格式

data: {"ts":"12:14:08","text":"🚀 任务开始执行...","level":"info"}

data: {"ts":"12:14:09","text":"[1/9] 创建订单...","level":"info"}

data: {"ts":"12:14:53","text":"✅ 协议充值全流程完成!","level":"success"}

代码示例

// 浏览器端
const apiKey = '您的API密钥';
const evtSource = new EventSource(
  `https://cdk.hifupay.com/api/stream/${taskId}?s=${encodeURIComponent(apiKey)}`
);
evtSource.onmessage = (event) => {
  const log = JSON.parse(event.data);
  console.log(`[${log.ts}] [${log.level}] ${log.text}`);
};
evtSource.onerror = () => {
  evtSource.close();
  console.log('连接已关闭');
};

// Node.js 端(使用 eventsource 包)
const EventSource = require('eventsource');
const es = new EventSource(
  `https://cdk.hifupay.com/api/stream/${taskId}?s=${encodeURIComponent(apiKey)}`
);
es.onmessage = (event) => {
  const log = JSON.parse(event.data);
  if (log.level === 'success' && log.text.includes('全流程完成')) {
    console.log('充值成功!');
    es.close();
  }
};

完整接入示例

以下是一个完整的对接流程示例(Node.js):

const fetch = require('node-fetch');

const BASE = 'https://cdk.hifupay.com';
const API_KEY = 'sk_your_api_key';
const PLATFORM = 'hifupay';

async function main() {
  // 1. 登录
  const loginResp = await fetch(`${BASE}/api/hfp/login`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ apiKey: API_KEY, platform: PLATFORM })
  });
  const loginData = await loginResp.json();
  if (!loginData.success) throw new Error(`登录失败: ${loginData.error}`);
  const token = loginData.apiKey; // 永久有效的 API 密钥
  const headers = { 'Content-Type': 'application/json', 'X-Api-Key': token };

  console.log('余额:', loginData.balance);

  // 2. 获取卡片列表
  const cardsResp = await fetch(`${BASE}/api/hfp/cards`, { method: 'POST', headers });
  const cardsData = await cardsResp.json();
  if (!cardsData.success || !cardsData.cards.length) throw new Error('无可用卡片');
  const cardId = cardsData.cards[0].id;
  console.log('使用卡片:', cardId);

  // 3. 查询队列(可选)
  const qResp = await fetch(`${BASE}/api/queue-status`, { headers: { 'User-Agent': 'MyApp/1.0' } });
  const queue = await qResp.json();
  console.log(`队列: 运行${queue.running}/${queue.max}, 等待${queue.queued}`);

  // 4. 创建充值任务
  const startResp = await fetch(`${BASE}/api/start`, {
    method: 'POST', headers,
    body: JSON.stringify({
      token: 'ChatGPT用户的Session Token',
      plan: 'plus',
      region: 'PH',
      hfpCardId: cardId
    })
  });
  const startData = await startResp.json();
  if (startData.error) throw new Error(`创建任务失败: ${startData.error}`);
  const taskId = startData.taskId;
  console.log('任务已创建:', taskId);

  // 5. 轮询任务状态
  while (true) {
    await new Promise(r => setTimeout(r, 5000));
    const statusResp = await fetch(`${BASE}/api/status/${taskId}`, { headers });
    const status = await statusResp.json();

    if (status.status === 'completed') {
      console.log('✅ 充值成功!账号:', status.account);
      break;
    }
    if (status.status === 'failed') {
      console.log('❌ 充值失败:', status.error);
      break;
    }
    console.log('⏳ 执行中... 日志数:', status.logs.length);
  }
}

main().catch(console.error);
最佳实践:
1. 使用 SSE 流替代轮询,实时性更好且减少请求数
2. 对卡片敏感信息做本地缓存,避免重复查询触发限流
3. 下单前先查询队列状态,避免长时间排队
4. 处理 401 时自动重新登录,处理 429 时指数退避重试
嗨付卡台 GPT协议充值 API 文档 · 客服 @jack668666 · 群组 @haifutai