面向代理商(商家)技术对接。平台只记账(人民币计价、线下结算),不涉及任何资金接口。
基址:https://6go.run/gp/api;鉴权:请求头X-API-Key: <你的key>(key 创建时仅展示一次,丢失请联系管理员重置)。
🔐 IP 白名单(2026-10-14 新增,防密钥泄露):商家可向管理员提供服务器出口 IP(服务器上执行curl -s ifconfig.me获取),管理员配置后该 key 仅允许白名单来源调用,泄露后他处调用无效;未配置的商家不限制。📋 接口更新日志:2026-10-23 游戏枚举补全(共 8 条线);新增宝可梦 TCG(ptcg,method=nintendo 任天堂官方页授权登录,建档顾客可凭 customer_id 直接下单复充);created/running 状态说明拆分;2026-10-16 查单新增login_info(充值前账号快照)与balance_after(充值后余额)字段,门户成功单支持「充值记录」查看;2026-10-09 登录+确认时限自下单起由 15 分钟延长至 20 分钟;错误码文案统一(二、错误码表);2026-10-01 5b 澄清:confirm_page=merchant回跳status=done仅表示登录成功(未充值),不调 confirm 永不扣款;登录+确认时限自下单起 15 分钟;2026-08-20 新增「登录账号信息 + 自定义核对页」三接口(login-info / confirm / reject,见 5b);2026-08-19 订单列表支持筛选参数、order_no 强制字符集;2026-08-18 新增订单回执gp_order_id字段、WTM 战争雷霆上线(gaijin/google 双登录)。
{"success": true, ...}{"success": false, "code": "错误码", "message": "一行中文说明"} —— 请按 code 做逻辑分支,message 只用于展示。price_usd、amount_usd_cents 等)保留历史命名,值一律为人民币(元/分)。| code | 含义 | 建议处理 |
|---|---|---|
INVALID_KEY | API key 无效或已停用 | 检查 key;找管理员 |
GAME_DISABLED | 未开通该游戏 | 找管理员开通 |
PRICE_NOT_SET | 该商品未配置价格 | 先找管理员配价 |
INSUFFICIENT_QUOTA | 今日订单数已达上限 | 明日再试或申请提额 |
INVALID_PARAM | 参数错误 | 对照本文档检查字段 |
IDEMPOTENCY_CONFLICT | 同 order_no 参数不一致 | 用原参数重发或换新单号 |
GAME_BUSY | 该顾客有进行中的订单 | 前单终态后再下;或先调取消接口作废前单(见 3d) |
PRODUCT_UNAVAILABLE | 充值失败 | 联系管理员核对 |
CARD_UNAVAILABLE | 充值失败 | 联系管理员核对 |
BAD_CREDENTIAL | 顾客凭据无效或已失效 | 让顾客重新提取凭据 |
PIN_SEND_FAILED | 验证码发送失败 | 稍后再试;多次失败找管理员 |
LOGIN_BUSY | 登录系统繁忙 | 稍后重试 |
LOGIN_TIMEOUT | 超时未登录 | 换新单号重新下单 |
LOGIN_CANCELLED | 顾客主动取消登录 | 与顾客确认后重下 |
ACCOUNT_REJECTED | 顾客确认账号不符,已取消充值 | 与顾客核对游戏账号后重新下单 |
LOGIN_UNAVAILABLE | 账密错误 / 未通过两步验证 | 账密错误请与顾客核对账号密码;未通过两步验证换单重试,持续出现找管理员 |
REDEEM_ISSUE | 充值失败 | 联系管理员核对 |
INTERNAL_ERROR | 充值失败 | 联系管理员核对 |
ORDER_NOT_FOUND | 订单不存在 | 检查 order_no |
GET /merchant/health → {"success":true,"status":"ok"}
GET /merchant/games → 你开通的游戏、商品列表(含你的人民币价、美元参考价)。商品会随游戏调价/后台运营调整,以此接口为准;另附静态对照表 商家SKU表.md(同目录,快照可能滞后)。
返回结构(每个游戏一个 products 数组,每项一个商品):
{
"game": "limbus",
"name": "Limbus",
"products": [
{
"product_id": "lunacy_monthly_1",
"title": "月度狂气包",
"price_usd": "68",
"sale_price": "68",
"available": true,
"reason": ""
}
]
}
商品字段:
| 字段 | 类型 | 说明 |
|---|---|---|
product_id | string | 商品 ID(下单时用它) |
title | string | 商品显示名 |
price_usd | string | 你的人民币价(历史命名保留,值是人民币);空字符串 = 未配价,不可下单 |
sale_price | string | 游戏内美元参考售价 |
available | bool | 该商品当前能否下单。false 时请置灰,不要展示成可买 |
reason | string | available=false 时的一行原因(如"支付资源暂未就绪");可下单时为空 |
available === false 判断置灰(不要用 !available,避免其它字段误判)。available/reason 字段(含自动档,自动档恒 available:true)。available=false 的商品即使强下单也会被拒(返回 CARD_UNAVAILABLE 或 PRODUCT_UNAVAILABLE)。POST /merchant/orders
{
"order_no": "你的唯一单号(≤64字符,只允许字母/数字/下划线_/中划线-)",
"game": "limbus / browndust / wtm / efootball / chaoszero / thespike / ggeternal / ptcg",
"product_id": "商品 ID(如 lunacy_monthly_1 / brd2_daily_pack / gold_pack_3)",
"customer": "顾客标识(邮箱)",
"credential": "顾客凭据(见下方凭据类型;留空 = 顾客网页登录充值,见 3c)",
"method": "可选:云登录方式(仅 credential 留空时有效):google 多数游戏默认 / apple / pin 仅 browndust / gaijin 仅 wtm / konami 仅 efootball / stove 仅 chaoszero / bnid 仅 ggeternal / nintendo 仅 ptcg",
"return_url": "可选:顾客完成后回跳的你们页面地址(仅 credential 留空时有效)"
}
⚠️ order_no 字符集(2026-08-19 起强制):只允许A-Z a-z 0-9 _ -。含空格或/ ? # %等字符的单号会被INVALID_PARAM拒绝(这类单号会导致后续查询/取消的 URL 断裂)。
credential 凭据类型(按形态自动识别,不用多传字段):
| 类型 | 形态 | 适用游戏 | 说明 |
|---|---|---|---|
| 谷歌账号凭据 | aas_et/ 或 oauth2_4/ 开头的字符串 | limbus、browndust、wtm | 顾客谷歌登录产生,原样提交即可 |
| 苹果账号凭据 | 其它长字符串 | limbus、browndust | 顾客苹果登录产生 |
| 邮箱验证码 | 纯数字 4-8 位 | 仅 browndust | 先调 POST /merchant/pin-code 发码 |
| Gaijin 账号密码 | 顾客的 Gaijin 官方账号密码 | 仅 wtm | customer 填 Gaijin 注册邮箱,credential 填密码明文 |
| SD高达长效凭据 | 纯数字 user_id(9 位及以上) | 仅 ggeternal | 云登录建档后产生的长效凭据,顾客一次登录后可复用直接下单;即 login-info 返回的 game_id |
| 宝可梦顾客 ID | 字母数字串(customer_id) | 仅 ptcg | 云授权建档后产生的长期凭据(顾客 ID),建档后可复用直接下单;即 login-info 返回的 game_id |
customer 邮箱是同一个号。method=gaijin(顾客在我们页面自己填 Gaijin 注册邮箱+密码,开了两步验证的顾客会被引导自己输邮箱验证码,能过 2STEP;customer 仅作你的订单标识,可任意占位,顾客真实邮箱以顾客页面实填为准)或 method=google(网页谷歌登录,与 limbus/browndust 同一套);直接传凭据也照旧(customer=Gaijin 注册邮箱,credential=密码明文,或谷歌账号凭据 aas_et/ 开头);②金鹰(gold_pack_*)有首购双倍(每档独立,每号每档一次),系统自动按双倍发货,无需区分下单。狂气"优先双倍"自动档(仅 limbus):商品列表里 lunacy_package_N_auto(如 lunacy_package_1_auto = 70 狂气)为自动档——下单后系统先登录顾客账号检查首充双倍:双倍还在就买双倍档(70+70),已用过就买普通档(70)。顾客买一档的钱,能拿多少狂气系统自动最大化,你不用判断。双倍档与普通档同价档,自动档按一档配价即可。
credential 也可整个留空:顾客不给你凭据,改走网页登录(见 3c,推荐)。返回:{"success":true,"reused":false,"order":{...}}。
reused:true),不会重复购买;同 order_no + 不同参数 → IDEMPOTENCY_CONFLICT。POST /merchant/pin-code
{"customer": "顾客邮箱"}
游戏会发一封验证码邮件到顾客邮箱;顾客把码给你后,把码作为 credential 下单(见上表 pin 行)。限流:每 5 分钟 10 次。
不想经手顾客凭据时:下单把 credential 留空(可带 method 指定登录方式:google 多数游戏默认 / apple / pin 仅 browndust / gaijin 仅 wtm / konami 仅 efootball / stove 仅 chaoszero / bnid 仅 ggeternal / nintendo 仅 ptcg;不传时 wtm 默认 gaijin、ptcg 默认 nintendo,其余默认 google),返回的订单为 awaiting_login 状态并带 login_url:
login_url 发给顾客(创建后 5 分钟内须首次打开,打开后 10 分钟内有效;存活期内顾客可重复打开同一链接,误关页面重开即可)。status 变 running,照旧轮询查单即可。凭据全程不经过你、不落盘。ACCOUNT_REJECTED,未充值;平台不做邮箱比对(苹果隐私邮箱必然对不上)。LOGIN_CANCELLED / LOGIN_TIMEOUT,可换新单号重新下单。LOGIN_BUSY,稍后重试即可(邮箱验证码不受限)。return_url(http/https 绝对地址):顾客确认/失败/取消/超时后,页面 2 秒内自动跳回该地址,并附带参数 order_no(你的单号)、status(confirmed/rejected/failed/cancelled/expired;confirm_page=merchant 时登录成功即回跳,status=done,仅表示登录完成、未充值)、game_id(仅 confirmed 时有,顾客登录出的游戏 ID)。登录页禁止 iframe 内嵌(防点击劫持),请整页跳转/新窗口/WebView 打开。POST /merchant/orders/{order_no}/cancel → {"success":true,"cancelled":true|false}
仅限 awaiting_login(顾客还没完成登录)的单。典型场景:顾客放弃了登录链接,你换单号重发时报 GAME_BUSY——先调本接口取消旧单,立即就能重发,不用等 20 分钟超时清扫。已进充值的单不可取消。
GET /merchant/orders/{order_no} → order.status:
awaiting_login:等顾客打开 login_url 完成网页登录(见 3c)created:已受理,排队等待充值启动,请继续轮询(建议 3-5 秒间隔)running:充值执行中(正在购买/核销),请继续轮询done:成功failed:失败(见 error_code)interrupted:已扣款但结果未定,等平台管理员裁决,不要重复下单订单对象字段(order 内的字段):
| 字段 | 说明 |
|---|---|
order_no / game / product_id / product_title / customer_key | 原样(下单参数回显) |
amount_usd | 金额(人民币,历史命名保留) |
status / error_code / message | 状态 / 失败原因码 / 对外失败文案 |
login_url | 仅 awaiting_login 时有值 |
gp_order_id | Google Play 订单号(订单回执,GPA…)。出票(扣款)后即有值,与订单终态无关;空串 = 尚未出票或出票前失败 |
created_at / finished_at | 创建/完结时间戳(秒) |
login_info | (2026-10-16 新增,云登录成功单有值)充值前账号快照:game_id(游戏 ID)/ nick(昵称)/ balances(充值前各货币余额) |
balance_after | (2026-10-16 新增,成功单有值)充值后余额:paid/free/total(边狱=付费/免费狂气+总;SD高达=有偿/无偿;战争雷霆=金鹰/银狮/铂狼币;宝可梦=有偿金块/无偿金块) |
订单回执(gp_order_id):顾客要购买凭证/向游戏方举证时,把这个号给他即可。出票(扣款)后即返回——订单可能仍在 running 或变 interrupted,回执号在终态前就可用,可提前给顾客。interrupted 单(已扣款待裁决):别重复下单,可先把 gp_order_id 给顾客作凭证,等管理员裁决。出票前失败的单(登录失败/卡拒付等)没有扣款,此字段为空串。
GET /merchant/orders?page=1&size=50
支持筛选参数(2026-08-19 起,全部可选、可组合):
| 参数 | 说明 |
|---|---|
order_no | 模糊搜索:命中单号 或 顾客标识(customer)的任意子串,如 A2026、gmail |
status | 精确:created / awaiting_login / running / done / failed / interrupted |
game | 精确:limbus / browndust / wtm / efootball / chaoszero / thespike / ggeternal / ptcg |
start / end | 创建时间范围(epoch 秒,闭区间) |
示例:GET /merchant/orders?status=done&game=limbus&start=1787000000
筛选后返回的 total 为筛选条件下的总数(分页照此翻页)。
云登录单(credential 留空)在顾客完成登录后,可用以下接口拿到账号信息,在你们自己的页面上做账号核对:
GET /merchant/orders/{order_no}/login-info
| state | 含义 |
|---|---|
waiting_login | 顾客还没完成登录(继续轮询) |
login_ready | 已登录可展示:game_id(游戏 ID)、nick(昵称)、balances(各货币余额,如 {"银币":178200,"金鹰":666,"铂狼币":1045},limbus 为狂气、browndust 为钻石/金币、ptcg 为付费/免费金块)、staged_at(信息拉取时间) |
其他(done/failed 等) | 订单已终态,只返回 state,无账号信息 |
game_id/nick/余额让顾客肉眼核对后再确认。自定义核对页完整接管(2026-09-17 新增参数 confirm_page):下单时传 confirm_page=merchant(须同时给 return_url),顾客云登录成功后页面不再展示平台核对页,直接回跳你的 return_url(附带 status=done——仅表示"登录成功",此时订单尚未充值,正停在你的确认环节等待)。随后由你方页面调 login-info 取账号信息展示给顾客核对:顾客点"这是我的账号"后调 confirm 才执行充值,点"不是这个账号"调 reject 关单。不调用 confirm 平台永不扣款(扣款闸门在你方)。注意时限:自下单起 20 分钟内须完成"登录 + 确认"全流程,超时订单自动判 LOGIN_TIMEOUT(凭据暂存 20 分钟,以订单 20 分钟口径为准)。不传或传 platform 则维持现状(平台核对页先出,终态后回跳)。
POST /merchant/orders/{order_no}/confirm —— 顾客确认("这是我的账号")。幂等:重复调用返回 {"already":true} 不会重复充值。凭据过期返回 LOGIN_TIMEOUT(需重新下单)。POST /merchant/orders/{order_no}/reject —— 顾客拒绝("不是这个账号")→ 订单判 ACCOUNT_REJECTED,不扣款。幂等。
平台托管的核对页继续可用:两条路谁先确认都行(幂等互斥)。
云登录浏览器槽位实时占用,供你们自己做用户排队:
GET /merchant/capacity → {"success":true,"slots":{"total":3,"busy":1,"free":2,"active_sessions":3}}
total:总槽数(当前 3,全部商家/顾客共享,可能随容量调整变化,以接口返回值为准);busy:占用中;free:空闲;active_sessions:所有通道的活跃会话数(参考)。free>0 放行下单,free=0 自有页显示排队等待,空出再放行——可基本避免 LOGIN_BUSY。下单加 quantity(整数 1~50,默认 1):仅战争雷霆(wtm) / SD高达(ggeternal) 支持 quantity>1——这两线无商品限购,一次登录连买多份(每份一张谷歌票)。边狱/棕色等限购线 quantity 只能为 1。
result 里带 succeeded(实充份数)/ total(下单份数)/ orderId(最后一张票号);出票≥1 即 done,少充的份数请按 succeeded 与顾客自行结算差价。GET /merchant/balance → 累计消费(人民币)、本月消费、本月笔数。
结算/预存余额请在商家中心「结算」页查看(网页登录,含打款记录),不走 API。
curl -X POST "https://6go.run/gp/api/merchant/orders" \
-H "X-API-Key: gp_xxxxxxxx" -H "Content-Type: application/json" \
-d '{"order_no":"A20260805001","game":"limbus","product_id":"lunacy_monthly_1","customer":"[email protected]","credential":"aas_et/..."}'
curl "https://6go.run/gp/api/merchant/orders/A20260805001" -H "X-API-Key: gp_xxxxxxxx"