小游戏服务平台 - 接口详细设计(入参/出参)
1. 用户服务
1.1 登录接口
POST /api/v1/auth/login
入参
{
"login_type": "password", // password / oauth
"username": "test_user", // 当 login_type=password
"password": "123456",
"oauth_provider": "wechat", // 当 login_type=oauth
"oauth_token": "wx_xxx"
}
出参
{
"code": 0,
"message": "success",
"data": {
"user_id": "100928374923",
"access_token": "eyJhbGciOiJIUzI1...",
"refresh_token": "eyJhbGciOiJIUzI1...",
"expires_in": 1800
}
}
1.2 刷新 Token
POST /api/v1/auth/refresh
入参
{
"refresh_token": "eyJhbGciOiJIUzI1..."
}
出参
{
"code": 0,
"message": "success",
"data": {
"access_token": "new_token_xxx",
"expires_in": 1800
}
}
1.3 获取用户信息
GET /api/v1/users/{user_id}
出参
{
"code": 0,
"message": "success",
"data": {
"user_id": "100928374923",
"username": "test_user",
"age": 22,
"gender": 1,
"region": "Beijing",
"status": 1,
"created_at": "2025-09-26T10:00:00Z"
}
}
2. 游戏服务
2.1 上传游戏
POST /api/v1/games/upload
入参
multipart/form-data
file: game.zip
metadata: {
"name": "Jump Game",
"description": "A casual jump game",
"version": "1.0.0",
"tags": ["casual","jump"]
}
出参
{
"code": 0,
"message": "upload success",
"data": {
"game_id": "200123891237",
"status": "pending_review"
}
}
2.2 获取游戏详情
GET /api/v1/games/{id}
出参
{
"code": 0,
"message": "success",
"data": {
"game_id": "200123891237",
"name": "Jump Game",
"description": "A casual jump game",
"version": "1.0.0",
"status": "online",
"cdn_url": "https://cdn.xxx.com/games/200123891237/v1/index.html",
"tags": ["casual","jump"],
"created_at": "2025-09-26T12:00:00Z"
}
}
2.3 搜索游戏
GET /api/v1/games?tag=casual&keyword=jump&page=1&size=10
出参
{
"code": 0,
"message": "success",
"data": {
"total": 125,
"list": [
{
"game_id": "200123891237",
"name": "Jump Game",
"tags": ["casual","jump"],
"status": "online"
}
]
}
}
3. 广告服务
3.1 请求广告
GET /api/v1/ads/request?slot_id=3001&user_id=100928374923
出参
{
"code": 0,
"message": "success",
"data": {
"ad_id": "ad_789123",
"type": "reward",
"material_url": "https://cdn.xxx.com/ads/ad_789123.mp4",
"duration": 30,
"click_url": "https://track.xxx.com/click?ad_id=ad_789123&user_id=100928374923"
}
}
3.2 上报广告事件
POST /api/v1/ads/report
入参
{
"user_id": "100928374923",
"game_id": "200123891237",
"ad_id": "ad_789123",
"event_type": "click",
"ts": "2025-09-26T12:00:00Z"
}
出参
{
"code": 0,
"message": "event logged"
}
4. 支付服务
4.1 创建订单
POST /api/v1/payments/create
入参
{
"user_id": "100928374923",
"game_id": "200123891237",
"amount": 9.99,
"currency": "USD",
"pay_method": "wechat" // wechat / alipay / stripe / paypal
}
出参
{
"code": 0,
"message": "order created",
"data": {
"order_id": "500123981273",
"out_trade_no": "wx202509261200xx",
"pay_url": "https://pay.wechat.com/order/wx202509261200xx"
}
}
4.2 支付回调
POST /api/v1/payments/notify
入参(由支付网关推送)
{
"out_trade_no": "wx202509261200xx",
"status": "paid",
"transaction_id": "wx_txn_001",
"paid_at": "2025-09-26T12:01:00Z"
}
出参
{
"code": 0,
"message": "callback processed"
}
4.3 开发者提现
POST /api/v1/developers/withdraw
入参
{
"developer_id": "dev_1001",
"amount": 500.00,
"currency": "USD",
"account": {
"method": "paypal",
"account_id": "dev@example.com"
}
}
出参
{
"code": 0,
"message": "withdraw request submitted",
"data": {
"settlement_id": "600918237182",
"status": "pending"
}
}
总结
我为 用户、游戏、广告、支付 四大模块整理了接口的 详细入参/出参 JSON 格式,同时包含:
- 错误码规范(
code) - 状态字段(status)
- 时间戳统一 ISO8601 UTC
- 幂等保障字段(如订单 out_trade_no)
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。
「prd」更多文章
Kite 关闭案例:AI 编程助手为什么早起飞却没飞远
开场:它比 AI 编程热潮更早出现 Kite 是较早一批 AI 编程助手产品,主打智能代码补全、文档提示和开发效率提升。在今天看,AI 写代码已经是热门方向,但 Kite 做这件事时,市场和模型生态还没有完全成熟。
Powa Technologies 失败案例:宏大支付愿景为什么没有落地
开场:它讲了一个非常大的故事 Powa Technologies 曾经被包装成移动支付和零售技术领域的明星公司。它的愿景很大:让消费者通过手机完成更顺滑的购物和支付,让商家获得新的交易入口。支付、移动、零售、O2O,这些关键词在当时都很有想象空间。
BlueJeans 受挫案例:视频会议早入场,为什么没赢到最后
开场:早进入市场,不等于最后胜出 BlueJeans 曾经是云视频会议市场的重要玩家。它比很多后来者更早服务企业客户,也抓住了跨设备视频会议的需求。后来它被 Verizon 收购,但最终服务停止,成为视频会议竞争中的受挫案例。