API 文档
返回首页

Kakao Pay UPI 开放 API

鉴权密钥即用户 Token(首页底部「API 密钥」)。兑换卡密后次数绑定到该 Token。

Base URL

https://upi.fengl.cc/api

鉴权

Authorization: Bearer 你的页面底部 API 密钥

1. 查询余额

GET /api/v1/me
curl -H "Authorization: Bearer TOKEN" https://upi.fengl.cc/api/v1/me

2. 兑换卡密

POST /api/v1/redeem
Content-Type: application/json

{"code":"ABCD1234..."}

3. 提交 AT 数据

与上游 AT 机器人协议对齐。每条有效 AT 消耗 1 次。建议带 Idempotency-Key。

POST /api/v1/at/submit
Authorization: Bearer TOKEN
Content-Type: application/json
Idempotency-Key: order-20260727-0001

{
  "at_data": [
    "第一条完整AT数据",
    "第二条完整AT数据"
  ]
}

成功 HTTP 202:

{
  "ok": true,
  "accepted": [{"order_id":"A...","status":"extracting","task_id":1,"charged":"0.83"}],
  "rejected": [],
  "balance": "9"
}

4. 查询订单(建议提交后每 20~30 秒轮询)

GET /api/v1/at/orders/{order_id}
curl -H "Authorization: Bearer TOKEN" \
  https://upi.fengl.cc/api/v1/at/orders/A2026072616085698054881

5. 任务列表 / 单条

GET /api/v1/tasks
GET /api/v1/tasks/{task_id}

状态说明

status说明
extracting / pending / processing处理中,请轮询
success完成
failed / error / rejected失败(失败会尝试退回次数)

Python 示例

import requests, uuid, time

BASE = "https://upi.fengl.cc/api"
TOKEN = "你的token"
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json",
     "Idempotency-Key": str(uuid.uuid4())}

r = requests.post(f"{BASE}/v1/at/submit", headers=H, json={"at_data":["AT数据..."]}, timeout=30)
print(r.status_code, r.json())
order_id = r.json()["accepted"][0]["order_id"]

while True:
    q = requests.get(f"{BASE}/v1/at/orders/{order_id}", headers={"Authorization": f"Bearer {TOKEN}"}, timeout=30)
    st = q.json()["order"]["status"]
    print(st)
    if st in ("success","failed","error","rejected"):
        break
    time.sleep(25)

与上游 api/ 目录关系

本站作为中间层:用户用卡密充次数 → 本站用后台配置的上游 tg_ Key 调用 api/AT机器人API开发文档.md 中的 /api/v1/at/submit 与订单查询,并在本地 SQLite 记账。