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

gamepay 商家 API 对接文档(P0)

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

一、通用约定

二、错误码

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",
  "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 官方账号密码仅 wtmcustomer 填 Gaijin 注册邮箱,credential 填密码明文

狂气"优先双倍"自动档(仅 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),返回的订单为 awaiting_login 状态并带 login_url

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

3d. 取消待登录订单

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

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_urlawaiting_login 时有值
gp_order_idGoogle Play 订单号(订单回执,GPA…)。出票(扣款)后即有值,与订单终态无关;空串 = 尚未出票或出票前失败
created_at / finished_at创建/完结时间戳(秒)

订单回执(gp_order_id:顾客要购买凭证/向游戏方举证时,把这个号给他即可。出票(扣款)后即返回——订单可能仍在 running 或变 interrupted回执号在终态前就可用,可提前给顾客interrupted 单(已扣款待裁决):别重复下单,可先把 gp_order_id 给顾客作凭证,等管理员裁决。出票前失败的单(登录失败/卡拒付等)没有扣款,此字段为空串。

5. 消费记录列表

GET /merchant/orders?page=1&size=50

支持筛选参数(2026-08-19 起,全部可选、可组合):

参数说明
order_no模糊搜索:命中单号 顾客标识(customer)的任意子串,如 A2026gmail
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 为筛选条件下的总数(分页照此翻页)。

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 为钻石/金币)、staged_at(信息拉取时间)
其他(done/failed 等)订单已终态,只返回 state,无账号信息

POST /merchant/orders/{order_no}/confirm —— 顾客确认("这是我的账号")。幂等:重复调用返回 {"already":true} 不会重复充值。凭据过期返回 LOGIN_TIMEOUT(需重新下单)。
POST /merchant/orders/{order_no}/reject —— 顾客拒绝("不是这个账号")→ 订单判 ACCOUNT_REJECTED,不扣款。幂等。
平台托管的核对页继续可用:两条路谁先确认都行(幂等互斥)。

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 为准