面向代理商(商家)技术对接。平台只记账(人民币计价、线下结算),不涉及任何资金接口。
基址:https://6go.run/gp/api;鉴权:请求头X-API-Key: <你的key>(key 创建时仅展示一次,丢失请联系管理员重置)。
📋 接口更新日志: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",
"product_id": "商品 ID(如 lunacy_monthly_1 / brd2_daily_pack / gold_pack_3)",
"customer": "顾客标识(邮箱)",
"credential": "顾客凭据(见下方凭据类型;留空 = 顾客网页登录充值,见 3c)",
"method": "可选:云登录方式 google/apple/pin(仅 credential 留空时有效,默认 google)",
"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 填密码明文 |
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),返回的订单为 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)、game_id(仅 confirmed 时有,顾客登录出的游戏 ID)。登录页禁止 iframe 内嵌(防点击劫持),请整页跳转/新窗口/WebView 打开。POST /merchant/orders/{order_no}/cancel → {"success":true,"cancelled":true|false}
仅限 awaiting_login(顾客还没完成登录)的单。典型场景:顾客放弃了登录链接,你换单号重发时报 GAME_BUSY——先调本接口取消旧单,立即就能重发,不用等 15 分钟超时清扫。已进充值的单不可取消。
GET /merchant/orders/{order_no} → order.status:
awaiting_login:等顾客打开 login_url 完成网页登录(见 3c)created/running:处理中,请继续轮询(建议 3-5 秒间隔)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 | 创建/完结时间戳(秒) |
订单回执(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 |
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 为钻石/金币)、staged_at(信息拉取时间) |
其他(done/failed 等) | 订单已终态,只返回 state,无账号信息 |
game_id/nick/余额让顾客肉眼核对后再确认。POST /merchant/orders/{order_no}/confirm —— 顾客确认("这是我的账号")。幂等:重复调用返回 {"already":true} 不会重复充值。凭据过期返回 LOGIN_TIMEOUT(需重新下单)。POST /merchant/orders/{order_no}/reject —— 顾客拒绝("不是这个账号")→ 订单判 ACCOUNT_REJECTED,不扣款。幂等。
平台托管的核对页继续可用:两条路谁先确认都行(幂等互斥)。
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"