鲁大师

游戏对接文档


端游对接文档

[TOC]

更新日期 更新说明 版本 作者
2021-03-05 创建文档 1.0 冯兴鑫
2021-03-09 增加充值文档 1.01 冯兴鑫
2021-03-22 游戏方获取登陆参数 1.02 冯兴鑫
2021-04-09 因防沉迷需要,增加上下线数据传输接口 1.03 冯兴鑫
2021-06-30 增加游戏内实名认证接口 1.04 冯兴鑫

接口要求和规范

  • 参数 time 为Unix 时间戳(January 1 1970 00:00:00 GMT 起的秒数) ,单位为秒
  • 编码统一使用 UTF-8
  • 参数sign里的md5 加密的“+”号是字符串链接符号,并且要把md5后的字符串转成小写
  • key双方协定或是一方处理完知会另一方
  • 接口返回errno=0表示成功,其他表示失败

游戏方获取登录参数

接口说明:

  • 玩家点击进入游戏后,游戏方请求平台接口,获得登录信息并启动游戏。支持直接跳转URL地址和返回JSON数据两种方式。

请求方式:

  • GET

请求地址:

  • https://wan.ludashi.com/client/play/{gid}?s={sid}&get_url={0|1}

请求参数:

参数 类型 是否必须 说明
gid String 必须 平台的游戏ID,由平台提供
s string 必须 平台区服ID,平台应至少配置1个区服
get_url string 否(默认0) 1:直接跳转登录地址(url);0:返回JSON

返回参数示例:

{
    "errno": 0,
    "msg": "成功",
    "data": {
        "uid": "xxx",
        "platform": "ludashi",
        "gid": "tlzpc",
        "sid": "1",
        "time": "1669097471",
        "fcm": "1",
        "sign": "xxx",
        "url": "?uid=xxx&platform=ludashi&gid=tlzpc&sid=1&time=1669097471&fcm=1&sign=xxx"
    }
}

# errno=>0:表示成功

登录接口

接口说明

  • 玩家在平台选择游戏区并登陆游戏时,平台将相关信息通过该登录接口发给游戏验证,待验证通过后将会引导玩家进入游戏界面,验证失败则会跳回平台出错页面(例如:官方网站)。

请求方式:

  • GET

请求地址示例:

  • http://{$host}/{$api}?uid=xxx&platform=ludashi&gid=xxx&sid=1001&time=1605507639&fcm=1&sign=a782e874f87e1469c29d799b97dc7d1d

请求参数:

参数 类型 是否必须 说明
http://{$host}/{$api} 游戏域名,最好是http。接口地址中如果有区服变量,区服ID用字符串{$sid}代替
uid string 必须 玩家在平台的用户id
platform String 必须 固定传ludashi, 标识平台
gid string 必须 约定的game id, 如枪魂gid=qh,不参与sign验证
sid int 必须 所属服务器,一区填写1,二区填写2,依此类推,
time int 必须 平台服务器的时间戳(为长整数,单位为秒),游戏需根据此参数判断,请求参数是否过期
fcm int 必须 防沉迷:1 已成年通过防沉迷;2 未成年,未满18岁;0 未填写身份信息
sign String 必须 md5(uid+platform+sid+time+fcm+key) 这里传递的md5字串为小写字母, 这里的key是表示平台和游戏双方提前协商约定好的密钥

角色查询

接口说明

  • 查询用户角色是否存在,并且返回玩家角色信息。

请求地址示例:

  • http://{$host}/{$api}?uid=xxx&platform=ludashi&gid=xxx&sid=1&time=1603333700&sign=2d5f3d19c2169c53aa01b07cd2c92de2

请求参数:

参数 类型 必须 说明
http://{$host}/{$api} 查角接口地址。接口地址中如果有区服变量,区服ID用字符串{$sid}代替
uid string 必须 平台用户标识
platform String 必须 固定传ludashi, 标识平台
gid string 必须 约定的game id, 如枪魂gid=qh,不参与sign验证
sid int 必须 所属服务器,一区填写1,二区填写2,依此类推
time int 必须 时间戳单位为秒
sign String 必须 md5(uid+platform+sid+time+key)这里传递的md5字串为小写字母, 这里的key是表示平台和游戏双方提前协商约定好的密钥

返回参数示例:

{
    "errno": 0,
    "data": {
        "name": "角色名",
        "level": "1"
    },
    "msg": "提示"
}

# errno => 0表示成功
# name 和 level 必须返回

查询防沉迷&VIP&绑定手机

接口说明:

  • 本接口用于查询玩家的会员信息。
  • 该接口使用到的加密key,不同于登陆注册的key需要和运营核对。
  • 参数中的gid需要和运营核对

请求方式:

  • POST | GET

请求地址:

  • http://wan.ludashi.com/openApi/platformVipInfo

请求参数:

参数 说明 必填 类型 备注
gid 游戏代号 String gid(小写),同运营核对
uid 玩家游戏账号 String 同登陆接口参数uid
time 时间戳 int 单位s,有效期为5分钟。
sign 签名 String md5(gid+uid+time+token)小写,token向运营申请

返回参数示例:

{
    "errno": 0,
    "data": {
        "vip": 5,
        "plus": 2,
        "bindPhone": 1,
        "fcm": 1
    },
    "msg": "请求成功"
}

# bindPhone => //0表示未绑定, 1表示绑定
# fcm => //0 表示未通过防沉迷验证,1表示通过

返回参数说明:

参数 说明 备注
errno 结果状态码 0 成功302 参数错误304 签名错误305 链接失效,超时
msg 结果信息 一般为出错信息
data 结果数据集
data.vip vip等级 0-9
data.plus 超玩会等级 0,11-14

扫码充值流程【固定金额】

接口说明

  • 适用于游戏内固定金额,需游戏方先创建订单,通过订单ID请求扫码支付

请求方式:

  • GET

请求地址:

  • http://wan.ludashi.com/client/pay/geth5pay

请求参数:

参数 说明
game_id 游戏id
server_num 区服编号
uid 当前用户ID
money 充值金额,单位:人民币元
ret_params 保持唯一性,标记游戏方的订单ID,充值成功后使用此参数发货
user_ip 用户真实ip地址
extra 透传参数

返回参数示例:

{
    "errno": 0,
    "msg": "success",
    "data": {
        "sign": "",
        "token": "97dafa323561f5a88e3d182211d2bf13",
        "scanUrl": "http://wan.ludashi.com/client/pay/scan?sign=6280ed3d626bbda9235afd53b5af1997"
    }
}

# 使用返回参数中的scanUrl渲染图片二维码供用户扫码充值

充值成功发货:

  • 游戏方需要提供: 发货地址 & 发货key
  • 请求地址:{接口地址}?uid=2927&money=10&ret_params=游戏方Order标识&status=success&extra=&sign=sign
  • 详细参数
参数 类型 必须 说明
接口地址 string 必须 游戏方提供,支持get
uid string 必须 用户id
money string 必须 充值金额
ret_params string 必须 ret_params 游戏方订单标识
status string 必须 success 标识订单在平台支付成功
extra string 必须 透传参数
sign string 必须 md5(uid+money+ret_params+key) 转小写, key双方约定
  • 发货游戏方返回:
    {
    "state": 1, // 成功
    "msg": "充值成功"
    }

扫码充值流程【自定义金额】

接口说明

  • 游戏内点击【充值】后展示二维码,扫码后,在手机上选择支付金额

请求URL:

  • http://wan.ludashi.com/client/payAny/geth5pay

请求参数:

参数 说明
game_id 游戏id
server_num 区服编号
uid 当前用户ID
daifu_user 当前用户ID
format 返回类型,json,image

返回值示例:

JSON返回值格式:
{
    "errno": 0,
    "msg": "success",
    "data": {
        "sign": "84457fe11037d2ee166c382d9cf7e478"
    }
}
备注
  • errno => 0表示成功,其他值表示异常
  • 从接口获取到sign字段后, 使用以下URL渲染二维码
  • http://wan.ludashi.com/client/payAny/index?sign={sign}
image返回值格式:
{
    "errno": 0,
    "msg": "success",
    "data": "图片数据流可以直接用在img标签的src属性上"
}
备注
  • errno => 0表示成功,其他值表示异常
  • 从接口拿到data后可直接用于img标签的src属性

充值回调

接口说明:

  • 玩家在平台充值成功后,由平台通过该充值接口向游戏发起发放游戏币的请求,在接口参数通过验证后,游戏向该服该玩家发放游戏币,并将元宝发放结果在接口中返回。

请求方式:

  • GET

请求地址示例:

  • http://{$host}/{$api}?platform=ludashi&orderId=1&gid=testhdx&sid=1&uid=2927&money=1&coin=10&time=1603334703&sign=000faa216b879a6c8b3331d8b9eb84b7

请求参数:

参数 类型 是否必须 说明
http://{$host}/{$api} 充值接口地址。接口地址中如果有区服变量,区服ID用字符串{$sid}代替
platform String 必须 固定传ludashi, 标识平台
orderId string 必须 订单号,不允许重复支持 字母、数字、下划线
gid string 必须 游戏ID;如《神王》传 wzzx
sid int 必须 所属服务器,一区填写1,二区填写2,依此类推
uid String 必须 平台用户标识
money float 必须 充值金额 单位元,支持两位小数
coin int 必须 充值平台币数量
time int 必须 平台服务器的时间戳(为长整数,单位秒)
sign string 必须 md5(platform+orderId+gid+sid+uid+ money+coin+time+key)这里传递的md5字串为小写字母, 这里的key是表示平台和游戏双方提前协商约定好的密钥

返回参数示例:

{
    "errno": 0,
    "data": "",
    "msg": "提示"
}

返回参数说明:

errno 说明
0 成功
1 订单号已存在(充值已成功)
-2 用户不存在
-3 IP限制
-4 md5校验错误
-5 time时间已过期 时间差在 前后3分钟内
-6 游戏服务器繁忙
-7 参数错误

充值接口其他要求:

  • 错误帐号不能充值,也就是不存在角色的账号。
  • 同个订单号前面出错 要能补单。比如突然网络异常或者玩家输入错账号,充值接口返回充值失败。等接口正常后, 我们客服需要对这些失败的充值订单补单。

玩家上下线日志

接口说明:

  • 为了运营以及防沉迷的需求,游戏方调用此接口,通知平台记录玩家上下线日志。

请求方式:

  • POST

请求地址:

  • http://wan.ludashi.com/client/report/userLogInout

请求参数:

参数 类型 必须 说明
gid String 必须 约定的游戏ID
time string 必须 请求的时间戳
sign String 必须 md5(gid+time+key) 转小写,+为连接符,key双方运营约定,一般为登陆游戏key
玩家详细日志以文本的格式POST String(Json) 必须 多维数组,一条记录传一条数组,每次传输数据不超过2000条。例如:Json_encode([ ['uid'=>'93', 'sid'=>1, 'role'=>'好汉', 'ip'=>'127.0.0.1', 'type'=>1, 'device'=>’pc’, 'time'=>1616984624 ], ['uid'=>'2927', 'sid'=>2, 'role'=>'靓仔', 'ip'=>'127.0.0.1', 'type'=>2,'device'=>’ios’, 'time'=>1616984624 ], ])详细参数解释:uid: 平台登陆游戏的唯一标识sid: 登陆的区服role: 角色名ip: 登陆地址type: 类型 1:登陆2:退出device: 设备类型 pc android iostime: 玩家发生行为时的准确时间,时间戳

返回参数示例:

{
    "errno": 1, 
    "data": [],
    "msg": "数据过多"
}

# errno=0时,表示请求成功

参考代码:

# php版本
function testUserLogInOut()
{
  $testData = [
    ['uid'=>'93', 'sid'=>1, 'role'=>'好汉', 'ip'=>'127.0.0.1', 'type'=>1, 'device'=>'ios','time'=>1616984624 ],
    ['uid'=>'2927', 'sid'=>2, 'role'=>'靓仔', 'ip'=>'127.0.0.1', 'type'=>2, 'device'=>'pc','time'=>1616984624 ]
  ];
  $key = '运营约定,一般为登录游戏key';
  $param = [
    'gid' => '游戏ID',
    'time' => time(),
  ];
  $param['sign'] = md5(implode('', $param) . $key);
  $url = "http://wan.ludashi.com/client/report/userLogInout?".http_build_query($param);

  $options = [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HEADER => false,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['Content-Type: text/plain'],
    CURLOPT_POSTFIELDS => json_encode($testData),
  ];

  $ch = curl_init();
  curl_setopt_array($ch, $options);
  $resp = curl_exec($ch);
  curl_close($ch);
  echo ($resp);
}

九、游戏内实名认证接口

接口说明:

  • 选择接入,游戏内弹出实名认证框,简化实名认证流程。

请求方式:

  • POST | GET

请求地址示例:

  • https://wan.ludashi.com/openApi/realAuth?uid=3233&idcard=510104199003077014&truename=%E5%BC%A0%E4%B8%89&type=yeyou&gid=ltzn&time=1625044377&sign=fc2d7bb9e7383696d2ab57f17fbb0be2

请求参数:

参数 类型 必须 说明
uid string 必须 平台用户标识,登录游戏时传入游戏方的用户标识
idcard String 必须 玩家真实身份证
truename string 必须 玩家真实姓名
type string 必须 yeyou 页游; h5 H5游戏; client 端游
gid string 必须 游戏id,向运营人员获取
time Int 必须 当前请求的时间戳
sign String 必须 md5($uid.$type.$gid.$time.$key)md5字串为小写字母, key为登录游戏的key

返回参数示例:

{
    "errno": 0, 
    "msg": "更新成功",
    "data": {
        "age": 23
    }
}
# errno => 0:成功,非0:失败

页面列表

ITEM_HTML