[TOC]
更新日期 |
更新说明 |
版本 |
作者 |
2020-10-22 |
创建文档 |
1.0 |
冯兴鑫 |
2020-11-01 |
登录,查角,充值接口中可以带区服变量 |
1.1 |
冯兴鑫 |
2020-11-12 |
充值接口增加roleId参数 |
1.2 |
冯兴鑫 |
2020-11-16 |
登录,查角接口增加gid参数 |
1.2.1 |
冯兴鑫 |
2021-06-30 |
增加游戏内实名认证接口 |
1.2.2 |
冯兴鑫 |
2021-07-15 |
更新充值接口roleId,productId说明 |
1.2.3 |
冯兴鑫 |
2022-02-16 |
增加游戏内接入扫码充值说明 |
1.2.4 |
张恒普 |
一、接口要求和规范
- 参数 time 为Unix 时间戳(January 1 1970 00:00:00 GMT 起的秒数) ,单位为秒
- 编码统一使用 UTF-8
- 接口请求方式为 POST | GET
- 参数sign里的md5 加密的“+”号是字符串链接符号,并且要把md5后的字符串转成小写
- key双方协定或是一方处理完知会另一方
- 接口地址中如果有区服变量,区服ID用字符串{$sid}代替,如 http://test-s{$sid}.test.com/login.php
二、登录接口
接口说明:
- 玩家在平台选择游戏区并登录游戏时,平台将相关信息通过该登录接口发给游戏验证,待验证通过后将会引导玩家进入游戏界面,验证失败则会跳回平台出错页面(例如:官方网站)。
请求地址示例:
http://{$host}/{$api}?uid=2927&platform=ludashi&gid=xxx&sid=1001&time=1605507639&fcm=1&client=web&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 未填写身份信息 |
client |
String |
必须 |
网页:web;微端:pc;盒子:box |
sign |
String |
必须 |
md5(uid+platform+sid+time+fcm+client+key) 这里传递的md5字串为小写字母, 这里的key是表示平台和游戏双方提前协商约定好的密钥 |
三、角色查询
接口说明
请求地址示例:
http://{$host}/{$api}?uid=2927&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:成功;非0失败 |
data |
每个角色信息里必须包含 name 和 level 字段 |
四、充值接口
接口说明:
- 玩家在平台充值成功后,由平台通过该充值接口向游戏发起发放游戏币的请求,在接口参数通过验证后,游戏向该服该玩家发放游戏币,并将元宝发放结果在接口中返回。
请求地址示例:
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 |
必须 |
平台用户标识 |
roleId |
String |
否 |
角色ID,透传role_id参数,方便固定金额充值 |
productId |
String |
否 |
商品ID,透传product_id参数,方便固定金额充值 |
money |
float |
必须 |
充值金额 单位元,支持两位小数 |
coin |
int |
必须 |
充值平台币数量 |
time |
int |
必须 |
平台服务器的时间戳(为长整数,单位秒) |
sign |
string |
必须 |
md5(platform+orderId+gid+sid+uid+ money+coin+time+key)这里传递的md5字串为小写字母, 这里的key是表示平台和游戏双方提前协商约定好的密钥 |
ext |
string |
否 |
透传参数 |
返回示例:
{
"errno": 0,
"data": "",
"msg": "提示"
}
返回参数说明:
errno |
说明 |
0 |
成功 |
1 |
订单号已存在(充值已成功) |
-2 |
用户不存在 |
-3 |
IP限制 |
-4 |
md5校验错误 |
-5 |
time时间已过期 时间差在 前后3分钟内 |
-6 |
游戏服务器繁忙 |
-7 |
参数错误 |
充值接口其他要求:
- 错误帐号不能充值,也就是不存在角色的账号。
- 同个订单号前面出错 要能补单。比如突然网络异常或者玩家输入错账号,充值接口返回充值失败。等接口正常后, 我们客服需要对这些失败的充值订单补单。
五、聊天信息推送接口
接口说明:
- 游戏方通过调用此接口,将玩家的聊天信息发送到鲁大师服务器
请求地址:
http://139.129.234.63:9952
请求方式:
请求参数:
参数名 |
类型 |
必须 |
说明 |
gid |
String |
是 |
平台游戏编号 |
sid |
int |
是 |
服务器编号 |
uid |
string |
是 |
平台用户ID,游戏登录接口中的平台账号 |
urole |
string |
是 |
游戏角色名称 |
channel |
int |
是 |
消息频道( 1私聊,2喇叭,4世界,6帮会,7队伍,8交易,9区域) |
tid |
string |
是 |
私聊时的目标账号uid(平台用户ID),非私聊频道时传空字符串 |
trole |
string |
是 |
私聊时的目标角色名称,非私聊频道时传空字符串 |
body |
string |
是 |
urlencode后的消息内容 (不参与签名) |
time |
int |
是 |
消息发送时间 |
sign |
string |
是 |
加密信息 md5(gid+sid+uid+urole+channel+tid+trole+time+key)(body不参与验证) |
返回示例:
{
"errno": 0,
"errmsg": ""
}
返回参数说明
错误码 |
提示 |
1 |
必填字段不能为空 |
2 |
游戏不存在 |
3 |
请求超时 |
4 |
签名错误 |
5 |
写入失败 |
6 |
IP限制, 请给运营提供贵方服务器IP地址(暂时不用) |
六、游戏内封禁账号/解封账号/禁言/解除禁言
接口说明:
- 游戏方提供接口,平台访问此接口,对违规账号进行封禁或者禁言;
请求方式 :
请求地址示例:
请求参数 :
参数名 |
类型 |
是否必须 |
说明 |
http://{$host}/{$api} |
|
|
充值接口地址 |
sid |
int |
是 |
服务器编号 |
uid |
string |
是 |
平台用户ID,游戏登录接口中的平台账号 |
platform |
string |
是 |
ludashi 标记平台 |
action |
string |
是 |
lock :(永久封禁)封号+踢下线,unlock:解封,unspeakable:禁言,speakable:解除禁言 |
us_time |
Int |
否 |
禁言时间,单位分钟,只对禁言有效 |
time |
int |
是 |
消息发送时间 |
sign |
string |
是 |
加密信息 md5(sid+uid+platform+action+us_time+time+key)转小写字母key为双方约定的,一般使用登录key |
返回示例:
{
"errno": 0,
"msg": ""
}
返回参数说明:
错误码 |
提示 |
0 |
封禁成功 |
其他非0值 |
封禁失败,及失败原因 |
七、同步新区开服运营数据接口
接口说明:
- 区服开服当日,游戏方每隔10分钟请求此接口一次,同步新开区服的运营数据。由于数据包含次日留存,所以开服第三天需再调用接口,更新次日留存指标。
请求地址:
https://wan.ludashi.com/openApi/serverReport
请求方式:
请求参数:
参数名 |
类型 |
必须 |
说明 |
gid |
string |
是 |
游戏ID,与鲁大师运营确认如《神王》wzzx |
time |
int |
是 |
当前请求时间戳,3分钟有效 |
data |
string |
是 |
多条区服的更新数据集合,格式为urlencode后的json字符串。每条数据必须包含['sid', 'open_time', 'connect_num', 'register_num', 'create_role_num', 'create_role_rate', 'next_day_stay_rate','pay_user_num', 'gun_pay_user_num', 'create_role_pay_rate']解释见上面--data字段中各指标解释示例:%5B%7B%22sid%22%3A1%2C%22open_time%22%3A%222020-10-01+10%3A00%22%2C%22connect_num%22%3A1000%2C%22register_num%22%3A800%2C%22create_role_num%22%3A400%2C%22create_role_rate%22%3A0.5%2C%22next_day_stay_rate%22%3A0.3%2C%22pay_user_num%22%3A200%2C%22gun_pay_user_num%22%3A100%2C%22create_role_pay_rate%22%3A0.5%7D%2C%7B%22sid%22%3A2%2C%22open_time%22%3A%222020-10-02+10%3A00%22%2C%22connect_num%22%3A2000%2C%22register_num%22%3A800%2C%22create_role_num%22%3A400%2C%22create_role_rate%22%3A0.5%2C%22next_day_stay_rate%22%3A0.5%2C%22pay_user_num%22%3A100%2C%22gun_pay_user_num%22%3A30%2C%22create_role_pay_rate%22%3A0.25%7D%5D |
sign |
string |
是 |
MD5(gid+time+游戏登录key) 小写 |
请求参数中data字段中各指标解释:
参数名 |
参数解释 |
说明 |
sid |
区服ID |
请传回登录游戏时,平台带的区服数字 |
open_time |
开服时间 |
该区服的开服时间 |
connect_num |
游戏链接数 |
当日链接访问该区服用户数(独立用户同一用户需要去重) |
register_num |
注册数 |
链接成功用户数(独立用户同一用户需要去重) |
create_role_num |
创角数 |
完成取名创角角色用户数 |
create_role_rate |
创角率 |
创角数/注册数 |
next_day_stay_rate |
次日存留 |
首日创角用户第二天登录数/首日创角用户数 |
pay_user_num |
首日付费人数 |
该区服开服第一天,付费人数(单人多次付费算1人) |
gun_pay_user_num |
滚服付费人数 |
其他区服有付费再该区服付费人数 |
create_role_pay_rate |
创角付费率 |
首日付费人数/首日创角人数 |
返回示例:
{
"errno": 0,
"msg": ""
}
返回参数说明
示例代码
$url = 'https://wan.ludashi.com/openApi/serverReport';
$reportData = [
['sid' => 1, 'open_time'=>'2020-10-01 10:00','connect_num' => 1000, 'register_num' => 800,
'create_role_num' => 400, 'create_role_rate' => 0.5, 'next_day_stay_rate' => 0.3,
'pay_user_num' => 200, 'gun_pay_user_num' => 100, 'create_role_pay_rate' => 0.5],
['sid' => 2,'open_time'=>'2020-10-02 10:00', 'connect_num' => 2000, 'register_num' => 800, 'create_role_num' => 400, 'create_role_rate' => 0.5, 'next_day_stay_rate' => 0.5,
'pay_user_num' => 100, 'gun_pay_user_num' => 30, 'create_role_pay_rate' => 0.25],
];
$param['data'] = urlencode(json_encode($reportData));
$param['gid'] = 'wzzx';
$param['time'] = time();
$key = 'login key';
$param['sign'] = strtolower(md5($param['gid'] . $param['time'] . $key));
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_TIMEOUT, 5);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_POST, true);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($curlHandle);
curl_close($curlHandle);
echo $result;
八、游戏内实名认证接口(选择接入)
接口说明:
请求地址示例:
https://wan.ludashi.com/openApi/realAuth?uid=3233&idcard=510104199003077014&truename=张三&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失败 |
data |
|
msg |
提示 |
九、游戏内扫码支付
接入方式一
接口说明:
- 通过iframe或者其他方式直接加载鲁大师提供支付页面
请求示例:
https://wan.ludashi.com/h5pay/platform?game_id=ms&server_id =1848&uid=93
请求参数
参数 |
类型 |
必须 |
说明 |
game_id |
string |
必须 |
游戏id,向运营人员获取 |
server_id |
int |
必须 |
游戏区服id, |
uid |
int |
必须 |
鲁大师游戏用户id |
接入方式二
接口说明:
- 通过鲁大师游戏提供接口获取签名字符串与支付页面拼接成一个完整的url,将url渲染成二维码供用户扫码
请求示例:
https://wan.ludashi.com/ajax/Geth5pay
参数说明:
参数 |
类型 |
必须 |
说明 |
game_id |
String |
必须 |
游戏id,向运营人员获取 |
server_num |
Int |
必须 |
游戏区服id, |
uid |
Int |
必须 |
鲁大师游戏用户id |
money |
Int |
可选 |
充值金额(单位:元),固定金额充值必传 |
product_id |
Int |
可选 |
商品ID,固定金额充值必传 |
product_name |
String |
可选 |
商品名称,固定金额充值必传 |
role_id |
Int |
可选 |
角色ID,固定金额充值必传 |
role_name |
String |
可选 |
角色名称,固定金额充值必传 |
ext |
String |
可选 |
透传参数 |
返回示例:
{
"errno": 0,
"msg": "success",
"data": {
"sign": "84457fe11037d2ee166c382d9cf7e478",
"url": "http://wan.ludashi.com/h5pay/index"
}
}
## 渲染二维码URL示例:
## http://wan.ludashi.com/h5pay/index?sign=84457fe11037d2ee166c382d9cf7e478
备注
- 针对部分非固定充值金额游戏存在固定金额充值需求时,在渲染二维码URL上加上change=0参数即可