天马客户端对接文档

一、pay-充值接口(http方式连接)

1.1、总体说明
1.1.1)是GameServer提供给平台的充值http方式接口
1.1.2)通过http给GameServer传递参数;
1.1.2)请求的http是固定的参数,包括userId,roleId,Amount,ItemId,BudanFlag,changeTime,order_no,cc,cporder_no,sign,Time,zoneId,Id,strParam;
1.1.3)参数格式是json串;
1.1.4)接口中手游的参数都是utf8编码
1.1.5)gameServer提供TCP协议接口,socket请求
1.1.6)具体IP和端口从t_ptserver表中获取
1.1.7)开服内网测试充值:http://192.168.0.49/pay/paytest.html

1.2、平台提交给gameserver的参数:

参数名称 参数类型 参数说明
Amount int 玩家充值金额
BudanFlag int 0:正常充值
1:福利-给绑钻和VIP
2:福利-给绑钻不参与活动
cc string 加密串
cporder_no string 天马订单号
currencyType string 货币代码:
1:人民币(元)
2:美分
8:台币
deviceGroupId string 机型参数
0000:安卓
0002:ios
extendParams string 扩展参数
fanli string 福利参数
Id string 平台库充值表自动加以序号,服务端充值处理充值结果是需要返回
ItemId string 直购Id、购买钻石为“0”
order_no string 渠道订单号
propId string 掌趣计费点ID
RoleID string 角色Id
Sign string md5签名-大写 md5(Amount+UserID+ZoneID+cporder_no+order_no+Time+fanli+私钥)
Time string 时间戳
UserID string 账号
ZoneID int 区号Id

1.3、请求示例
{
“Amount”:499,
“BudanFlag”:0,
“cc”:”20A3E6A5B99D284B421860AD002092A1”,
“ChargeTime”:1676332979,
“cporder_no”:”0612023021401023533000”,
“Id”:”2134689”,
“propId”:”com.fingerfun.nova.pack5”,
“order_no”:”0612023021401023533000”,
“RoleID”:”47120000004”,
“Sign”:”1D73091347505A76041F4B89B1CE7F37”,
“Time”:1676332979,
“UserID”:”1100010000000000000000000000000009649219”,
“ZoneID”:”4”,
“cmdId”:1,
“extendParams”:”b1ebc2aa-48d3-466a-b71b-89ee152ccf40”,
“currencyType”:”2”,
“fanli”:”0”,
“deviceGroupId”:”0000”
}

1.4、服务端处理返回结果:
{
“result”:true,
“msg”:”{\”msg\”:\”succeed\”,\”ret\”:1}”
}

二、pay-充值接口(socket方式连接)

2.1、总体说明
2.1.1)是GameServer提供给平台的充值socket接口
2.1.2)通过socket给GameServer传递参数;
2.1.3)请求的socket是固定的参数,包括userId,roleId,Amount,ItemId,BudanFlag,changeTime,order_no,cc,cporder_no,sign,Time,zoneId,Id,strParam,propId,currencyType;
2.1.4)参数格式是json串;
2.1.5)接口中手游的参数都是utf8编码
2.1.6)gameServer提供TCP协议接口,socket请求
2.1.7)具体IP和端口从t_ptserver表中获取
2.1.8)从2018年1月开始的项目,充值参数用Json的格式传输方式,《全民奇迹》《神话》用protobuf结构
8)开服内网测试充值:http://192.168.0.49/pay/paytest.html

2.2、平台提交给gameserver的参数:

参数名称 参数类型 参数说明
Amount int 玩家充值金额
BudanFlag int 0:正常充值
1:福利-给绑钻和VIP
2:福利-给绑钻不参与活动
cc string 加密串
ChargeTime string 下订单时间
cporder_no string 天马订单号
currencyType string 货币代码:
1:人民币(元)
2:美分
8:台币
Id string 平台库充值表自动加以序号,服务端充值处理充值结果是需要返回
ItemId string 直购Id、购买钻石为“0”
order_no string 渠道订单号
propId string 掌趣计费点ID
RoleID string 角色Id
strParam string 福利参数
Sign string md5签名-大写 md5(Amount+UserID+ZoneID+cporder_no+order_no+Time+私钥)
Time string 时间戳
UserID string 账号
ZoneID int 区号Id

2.3、请求示例
{
“Amount”:999,
“BudanFlag”:0
“cc”:”C6FB3C07E47A1D0861A22205004363AD”,
“ChargeTime”:”2022-10-31 00:00:22”,
“cporder_no”:”OurpalmHaiWai22103100002212310058436109990050222”,
“currencyType”:”2”,
“Id”:”4416429”,
“ItemId”:”600059992”,
“order_no”:”0522022103101002265800”,
“propId”:”609992”,
“RoleID”:”3534059070281430668”,
“strParam”:””,
“Sign”:”2CC0F2336826ADDC9801C5567917830C”,
“Time”:1667149237,
“UserID”:”0400010000000000000000000000000013220926”,
“ZoneID”:50222
}

2.4、服务端处理返回结果:id:处理处理结果

处理处理结果 描述
1 充值成功
-4 签名错误
-1、-5 订单号重复
其他数字 充值异常

三、LiBaoMa-礼包码服务器对接(http方式)

3.1、总体说明
3.1.1)是GameServer提供给平台的充值socket接口
3.1.2)通过socket给GameServer传递参数;
3.1.3)请求的socket是固定的参数,包括userId,roleId,Amount,ItemId,BudanFlag,changeTime,order_no,cc,cporder_no,sign,Time,zoneId,Id,strParam,propId,currencyType;
3.1.4)参数格式是json串;
3.1.5)接口中手游的参数都是utf8编码
3.1.6)gameServer提供TCP协议接口,socket请求
3.1.7)具体IP和端口从t_ptserver表中获取
3.1.8)从2018年1月开始的项目,充值参数用Json的格式传输方式,《全民奇迹》《神话》用protobuf结构
3.1.9)开服内网测试充值:http://192.168.0.49/pay/paytest.html

3.2、平台提交给gameserver的参数:

参数名称 参数类型 参数说明
Amount int 玩家充值金额
BudanFlag int 0:正常充值
1:福利-给绑钻和VIP
2:福利-给绑钻不参与活动
cc string 加密串
ChargeTime string 下订单时间
cporder_no string 天马订单号
currencyType string 货币代码:
1:人民币(元)
2:美分
8:台币
Id string 平台库充值表自动加以序号,服务端充值处理充值结果是需要返回
ItemId string 直购Id、购买钻石为“0”
order_no string 渠道订单号
propId string 掌趣计费点ID
RoleID string 角色Id
strParam string 福利参数
Sign string md5签名-大写 md5(Amount+UserID+ZoneID+cporder_no+order_no+Time+私钥)
Time string 时间戳
UserID string 账号
ZoneID int 区号Id
cmdId int 标识符:2

3.3、请求示例
{
“Amount”:999,
“BudanFlag”:0
“cc”:”C6FB3C07E47A1D0861A22205004363AD”,
“ChargeTime”:”2022-10-31 00:00:22”,
“cporder_no”:”OurpalmHaiWai22103100002212310058436109990050222”,
“currencyType”:”2”,
“Id”:”4416429”,
“ItemId”:”600059992”,
“order_no”:”0522022103101002265800”,
“propId”:”609992”,
“RoleID”:”3534059070281430668”,
“strParam”:””,
“Sign”:”2CC0F2336826ADDC9801C5567917830C”,
“Time”:1667149237,
“UserID”:”0400010000000000000000000000000013220926”,
“ZoneID”:50222,
“cmdId”:50222
}

3.4、服务端处理返回结果:id:处理处理结果

处理处理结果 描述
1 充值成功
-4 签名错误
-1、-5 订单号重复
其他数字 充值异常

四、LiBaoMa-礼包码服务器对接(socket方式)

4.1、总体说明
4.1.1)通过socket给gameserver传递参数-和充值方式一样;
4.1.2)请求的socket是固定的参数,包括userId,roleId,codeNo,giftId,changeTime,lTime,zoneId,sign;
4.1.3)参数格式是json串;
4.1.4)接口中手游的参数都是utf8编码
4.1.5)gameServer提供TCP协议接口,socket请求
4.1.6)具体IP和端口从t_ptserver表中获取
4.1.7)开服内网测试地址:http://192.168.0.49/login/fasonglibaoma.php

4.2、平台提交给gameserver的参数:

参数名称 参数类型 参数说明
userId string 账号
roleId int 角色Id
codeNo string 礼包码Id
giftId string 礼包Id
changeTime string 提交时间
lTime long 时间戳
zoneId int 区号Id
sign string 签名格式:md5(userId+ zoneId+ codeNo+ giftId+lTime + strGameKey),小写字母,字符比较时请注意

4.3、请求示例:
{
“userId”:”0105350000000000000000000000003417798987”,
“roleId”:”380395594”,
“codeNo”:”A2922BC5535G8X”,
“giftId”:”QJS0697”,
“chargeTime”:”2023-2-23 00:14:41”,
“lTime”:”1677082481”,
“zoneId”:”270080”
}

4.4、gameserver返回数据:
{
“userId”:”0105350000000000000000000000003417798987”,
“roleId”:”380395594”,
“codeNo”:”A2922BC5535G8X”,
“giftId”:”QJS0697”,
“chargeTime”:”2023-2-23 00:14:41”,
“lTime”:”1677082481”,
“zoneId”:”270080”,
“code”:”1”, //1:成功,其他返回值 失败
“desc”:”\u6210\u529f”
}

五、服务端数据-每2分钟写redis一次

5.1)以hash的方式存数据,hash名:serverstate ;
5.2)hash的key是以服务器id为key;
5.3)hash的value如下:
{
“ZoneID”:1,
“OnlineNum”:1,
“QueueNum”:0,
“RoleNum”:4969,
“ServerBeginTime”:”2018-10-11 00:00:00”,
“UpdateTime”:”2018-10-19 14:26:29”,
“fCpuUsage”:0,
“fTotalCpuUsage”:0,
“CurProcessMemory”:0,
“TotalProcessMemory”:0
}

key 描述
ZoneID 区服Id
OnlineNum 在线人数
QueueNum 排队人数
RoleNum 不重复账号数量
ServerBeginTime 服务器开服时间
UpdateTime 这条记录更新时间
fCpuUsage cup使用
fTotalCpuUsage cpu总量
CurProcessMemory 当前内存使用量
TotalProcessMemory 内存总量
FiveMinuteAddAccountNum 最近5分钟注册账号数-不重复
forceup 创角账号是否已满
1:已满
0:未满

六、创建角色信息

创建角色信息
将玩家的角色信息写入到redis 哈希中,奇迹觉醒的希名名:idip_server_rolecount_mu2(其他项目自己定),键值为openid,value为区号角色信息,例:
[{
“serverID” : 8061 ,
“roleIDs” :
[{
“Item1” : 1081181825 ,
“Item2” : “\u5965\u52d2\u838e\u2737\u963f\u5a1c” ,
“Item3” : 1 ,
“Item4” : 2
},
{
“Item1” : 1081181825 ,
“Item2” : “\u624e\u5361\u8d56\u4e9a\u65af\u2721” ,
“Item3” : 1 ,
“Item4” : 2
}]
},
{
“serverID” : 8062 ,
“roleIDs” :
[
{
“Item1” : 10811818251 ,
“Item2” : “\u5965\u52d2\u838e\u2737\u963f\u5a1c” ,
“Item3” : 1 ,
“Item4” : 2
},
{
“Item1” : 10811818252 ,
“Item2” : “\u624e\u5361\u8d56\u4e9a\u65af\u2721” ,
“Item3” : 1 ,
“Item4” : 2
}
]
}]

  1. item1:角色id
  2. item2:角色名称
  3. item3:职业
  4. item4:等级
  5. 如果有其他项要添加的,项目根据自己的需要添加

七、写入角色信息(用于客户端获取服务器列表时返回在LoginServerRoleInfo字段)

将玩家的角色信息写入到redis:
数据格式:hash
hash名:idip_server_roleinfo(不同游戏可能不一样,具体游戏与平台对应即可)
hash的key:userId(用户Id)
hash的value:

  1. [{
  2. "serverID": 8061, // 区服Id
  3. "roleIDs": [{ // 角色信息数组
  4. "Item1": 1081181825,
  5. "Item2": "\u5965\u52d2\u838e\u2737\u963f\u5a1c",
  6. "Item3": 1,
  7. "Item4": 2
  8. },
  9. {
  10. "Item1": 1081181825,
  11. "Item2": "\u624e\u5361\u8d56\u4e9a\u65af\u2721",
  12. "Item3": 1,
  13. "Item4": 2
  14. }
  15. ]
  16. },
  17. {
  18. "serverID": 8062,
  19. "roleIDs": [{
  20. "Item1": 10811818251,
  21. "Item2": "\u5965\u52d2\u838e\u2737\u963f\u5a1c",
  22. "Item3": 1,
  23. "Item4": 2
  24. },
  25. {
  26. "Item1": 10811818252,
  27. "Item2": "\u624e\u5361\u8d56\u4e9a\u65af\u2721",
  28. "Item3": 1,
  29. "Item4": 2
  30. }
  31. ]
  32. }
  33. ]
注:具体角色信息字段可由游戏端定,具体在服务器列表返回LoginServerRoleInfo字段的json字符串为:roleData对应写入json字符串!