gamepay 商家开放平台
API 对接文档
基址 https://6go.run/gp/api · 鉴权 X-API-Key · 有问题找平台对接人

gamepay 商家 API 对接文档(P0)

面向代理商(商家)技术对接。平台只记账(人民币计价、线下结算),不涉及任何资金接口。
基址: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 双登录)。

一、通用约定

二、错误码

code含义建议处理
INVALID_KEYAPI 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

三、端点

1. 健康检查(不鉴权)

GET /merchant/health → {"success":true,"status":"ok"}

2. 已开通游戏与商品

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_idstring商品 ID(下单时用它)
titlestring商品显示名
price_usdstring你的人民币价(历史命名保留,值是人民币);空字符串 = 未配价,不可下单
sale_pricestring游戏内美元参考售价
availablebool该商品当前能否下单。false 时请置灰,不要展示成可买
reasonstringavailable=false 时的一行原因(如"支付资源暂未就绪");可下单时为空

3. 下单

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 官方账号密码仅 wtmcustomer 填 Gaijin 注册邮箱,credential 填密码明文
SD高达长效凭据纯数字 user_id(9 位及以上)仅 ggeternal云登录建档后产生的长效凭据,顾客一次登录后可复用直接下单;即 login-info 返回的 game_id
宝可梦顾客 ID字母数字串(customer_id)仅 ptcg云授权建档后产生的长期凭据(顾客 ID),建档后可复用直接下单;即 login-info 返回的 game_id

狂气"优先双倍"自动档(仅 limbus):商品列表里 lunacy_package_N_auto(如 lunacy_package_1_auto = 70 狂气)为自动档——下单后系统先登录顾客账号检查首充双倍:双倍还在就买双倍档(70+70),已用过就买普通档(70)。顾客买一档的钱,能拿多少狂气系统自动最大化,你不用判断。双倍档与普通档同价档,自动档按一档配价即可。

返回:{"success":true,"reused":false,"order":{...}}。

3b. 发邮箱验证码(仅 browndust 的 pin 登录用)

POST /merchant/pin-code

{"customer": "顾客邮箱"}

游戏会发一封验证码邮件到顾客邮箱;顾客把码给你后,把码作为 credential 下单(见上表 pin 行)。限流:每 5 分钟 10 次。

3c. 顾客网页登录充值(credential 留空,推荐)

不想经手顾客凭据时:下单把 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:

  1. 把 login_url 发给顾客(创建后 5 分钟内须首次打开,打开后 10 分钟内有效;存活期内顾客可重复打开同一链接,误关页面重开即可)。
  2. 顾客在页面里自己完成登录(谷歌/苹果/邮箱验证码,wtm 是 Gaijin 账号密码——顾客在页面自行填写真实注册邮箱+密码,开了两步验证的顾客会被引导自己输邮箱验证码;宝可梦(ptcg)顾客看到的是任天堂官方登录页,自己完成登录+授权(可能要求邮箱验证码),授权后自动出核对页——显示游戏昵称/朋友 ID,拉不到昵称时显示任天堂账号+金块余额),页面会显示他登录出的游戏账号(游戏 ID/昵称/登录邮箱,wtm 暂无资源数据展示),顾客点"这是我的账号"确认。
  3. 确认后订单自动进入充值,status 变 running,照旧轮询查单即可。凭据全程不经过你、不落盘。

3d. 取消待登录订单

POST /merchant/orders/{order_no}/cancel → {"success":true,"cancelled":true|false}
仅限 awaiting_login(顾客还没完成登录)的单。典型场景:顾客放弃了登录链接,你换单号重发时报 GAME_BUSY——先调本接口取消旧单,立即就能重发,不用等 20 分钟超时清扫。已进充值的单不可取消。

4. 查单(轮询)

GET /merchant/orders/{order_no} → order.status:

订单对象字段(order 内的字段):

字段说明
order_no / game / product_id / product_title / customer_key原样(下单参数回显)
amount_usd金额(人民币,历史命名保留)
status / error_code / message状态 / 失败原因码 / 对外失败文案
login_url仅 awaiting_login 时有值
gp_order_idGoogle 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 给顾客作凭证,等管理员裁决。出票前失败的单(登录失败/卡拒付等)没有扣款,此字段为空串。

5. 消费记录列表

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 为筛选条件下的总数(分页照此翻页)。

5b. 登录账号信息 + 自定义核对页(2026-08-20 新增)

云登录单(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,无账号信息

自定义核对页完整接管(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,不扣款。幂等。
平台托管的核对页继续可用:两条路谁先确认都行(幂等互斥)。

5c. 登录容量查询(2026-09-20 新增)

云登录浏览器槽位实时占用,供你们自己做用户排队:

GET /merchant/capacity → {"success":true,"slots":{"total":3,"busy":1,"free":2,"active_sessions":3}}

5d. 多份购买(2026-09-20 新增)

下单加 quantity(整数 1~50,默认 1):仅战争雷霆(wtm) / SD高达(ggeternal) 支持 quantity>1——这两线无商品限购,一次登录连买多份(每份一张谷歌票)。边狱/棕色等限购线 quantity 只能为 1。

6. 消费汇总(对账)

GET /merchant/balance → 累计消费(人民币)、本月消费、本月笔数。

结算/预存余额请在商家中心「结算」页查看(网页登录,含打款记录),不走 API。

四、调用示例(curl)

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"
© gamepay · 文档快照 2026-08-15 · 实时目录与价格以 GET /merchant/games 为准