天马客户端对接文档

一、ServerList-获取全部服务器列表

1.1、总体说明
1.1.1)页面名称:getserverlist.php;
1.1.2)请求的url是固定的参数,包括PtId,AreaId,strUID,AppLevelUpVerCode;
1.1.3)body部分是json串;
1.1.4)接口中所有的参数都是utf8编码
1.1.5)平台提供http协议接口,post请求
1.1.6)外网具体url链接由运维提供
1.1.7)内网测试地址:每个项目都有自己的内网测试地址,需要搭建的时候发ones给平台对接人

1.2、客户端提交给平台的参数

参数名称 参数类型 参数描述
AreaId string 大区Id
PtId string 平台Id
strUID string 用户uid
AppLevelUpVerCode string 客户端版本号

请求示例:
{
“AreaId”:”1”,
“PtId”:”1”,
“strUID”:”abc”,
“AppLevelUpVerCode”:”750”,
}

1.3、平台接口返回protobuffer数据

参数名称 参数类型 参数描述
ListServerData BuffServerInfo 返回服务器列表
IsAllPause bool 是否全区维护:true 全区全服停服维护、false 没有全区全服维护
ServerCount int 全区停机维护服务器数量
strMaintainTxt string 停机维护内容
strMaintainStarTime string 停机维护开始时间
strMaintainTerminalTime string 停机维护结束时间
ListZhuanShuData BuffZhuanShuInfo 专属服列表

1.4、平台返回值 ListServerData(BuffServerInfo) 的protobuffer数据说明

参数名称 参数类型 参数描述
ServerOrder int 自动加1序号
ServerId int 服务器Id
busyStatus int 是否强制设置成爆满:
1:强制
0:按在线人数计算
(客户端不用关心,接口自动转换)
ListMapOnline int 在线人数
ServerName string 服务器名称
StartTime string 开服时间
Status int 服务器状态
status=0 时 显示 “白名单可见、非白名单不可见(客户端不用关心,接口自动转换)”
status=3 时 显示 “爆满”
status=4 时 显示 “拥挤“
status=1、2、5、6 时 显示 “正常-流畅“
status=7 时 显示 “维护”
当客户端获取到status=7时,请在客户端提示玩家:
维护开始时间(MaintainStarTime)、
维护结束时间(MaintainTerminalTime)及维护内容(MaintainTxt)
status=8 时 则为 “未开启服务器”
当客户端获取到status=8时,请在客户端提示玩家:
客户端固定文字 + 开放时间(StartTime)
Url string 服务器IP
ServerPort int 登陆服务器端口
MaintainTxt string 停机维护内容
MaintainStarTime string 停机维护开始时间
MaintainTerminalTime string 停机维护结束时间
SerVersion string 服务器端版本号
CliVersion string 客户端版本号
Forceup string 全民2-韩国 不重复的创建账号达到设定值
0:否、
1:是
SerNickName string 客户端要显示的服务器名称
AreaId string 大区Id腾讯用到:微信AreaId=”1“,手Q AreaId=”2“,天马自己AreaId=”1“
PtId string 平台Id,ios平台和混服平台值是PtId=”0“,安卓平台值是 PtId=”1“
freeip string 免流量IP
freeport string 免流量端口
newstatus string 新服标识,最近开的三组标识成新服
0:普通服
1:新服
suggeststatus string 推荐标识
1:推荐
0:不推荐
zhuanshuid string 专属id
ExtendParams string 扩展参数
RegNum int 注册数
Unum int 用户数

备注:如果没有获取到服务器列表,则返回null

1.5、平台返回值 ListZhuanShuData(BuffZhuanShuInfo) 的protobuffer数据说明

参数名称 参数类型 参数描述
id string 自动加1序号
name string 名称
iszhuanshu string 是否专属

二、ServerList-记录玩家登陆历史

2.1、总体说明
2.1.1)页面名称:writeuserloginserverid.php;
2.1.2)请求的url是固定的参数,包括PtId,AreaId,strUID,ServerIds;
2.1.3)body部分是json串;
2.1.4)接口中所有的参数都是utf8编码
2.1.5)平台提供http协议接口,post请求
2.1.6)外网具体url链接由运维提供,
2.1.7)国内记录玩家最近登陆的5组服务器,海外记录玩家最近登陆的10服务器
2.1.8)内网测试地址:http://192.168.0.49/serverlist/项目名称(根据项目而改变)/writeuserloginserverid.php

2.2、客户端提交给平台的参数

参数名称 参数类型 参数描述
AreaId string 大区Id,由运维提供,正式上线时,运维提供服务器列表时同时提供。
PtId string 平台Id,由运维提供,正式上线时,运维提供服务器列表时同时提供。
strUID string 用户uid
ServerIds string 玩家成功创建的区号

客户端请求示例:
{
“AreaId”:”1”,
“PtId”:”1”,
“strUID”:”abc”,
“ServerIds”:”5”,
}
2.3、平台接口给客户端返回值为整型
0:成功
1:失败

三、ServerList-获取推荐服和玩家历史登陆服

3.1、总体说明
3.1.1)页面名称:getuserserverlist.php(排队推荐服务器的网页接口是:getqueueuserserverlist.php 返回数据格式一样);
3.1.2)请求的url是固定的参数,包括PtId,AreaId,strUID,AppLevelUpVerCode,ServerIds;
3.1.3)body部分是json串;
3.1.4)接口中所有的参数都是utf8编码
3.1.5)平台提供http协议接口,post请求
3.1.6)外网具体url链接由运维提供
3.1.7)内网测试地址:每个项目都有自己的内网测试地址,需要搭建的时候发ones给平台对接人

3.2、客户端提交给平台的参数

参数名称 参数类型 参数描述
AreaId string 大区Id,由运维提供,正式上线时,运维提供服务器列表时同时提供
PtId string 平台Id,由运维提供,正式上线时,运维提供服务器列表时同时提供。
strUID string 用户uid
AppLevelUpVerCode string 客户端版本号
ServerIds string 玩家登陆的过的服务器id列表,比如:1,56,78,23玩家登陆最近登陆1区,最早登陆23区

客户端请求示例:
{
“AreaId”:”1”,
“PtId”:”1”,
“strUID”:”abc”,
“AppLevelUpVerCode”:”750”,
“ServerIds”:”1,2”
}

3.3、接口返回客户端数据:

参数名称 参数类型 参数描述
ListServerData BuffServerInfo 玩家历史登陆服
RecommendListServerData BuffServerInfo 系统推荐服
ClientInfo string 玩家登陆ip计算方式
IP第一位2的24次方
+IP第二位2的16次方
+IP的第三位*2的8次方
+IP的第四位值
LoginServerRoleInfo string 玩家登陆信息json格式
AllServerList string 全部服务器列表
IsDev int 是否dev

四、Login-渠道账号登陆游戏

4.1、总体说明
4.1.1)页面名称:sidinfo.php;
4.1.2)请求的url是固定的参数,但必须包括这些参数:strSID,lTime,strMD5;
4.1.3)body部分是json串;
4.1.4)接口中所有的参数都是utf8编码
4.1.5)平台提供http协议接口,post请求
4.1.6)具体url链接由运维提供
4.1.7)内网测试地址:http://192.168.0.49/login/sidinfo.php

4.2、客户端提交给平台的参数

参数名称 参数类型 参数描述
strSID string json串
lTime long 时间戳
strMD5 string md5(key+strSID+lTime)

请求示例:
{
“strMD5”:”8b1176ed6b719363bc55b8cda46c2706”,
“strSID”:”{
“uid”:”1500010000000000000000000000000012460809”,
“strPlatName”:”OurpalmHaiWai”,
“sid”:”d4fbbadc-3daa-4228-91f6-7deecc701290”
}”,
“lTime”:732067207153
}

strSID参数说明:

参数名称 参数类型 参数描述
strPlatName string 区服海外还是国内,对于掌趣来说,海外和国内的请求参数是不一样的
国内:Ourpalm
海外:OurpalmHaiWai
sid string 掌趣的token客户端从sdk里获取
其他参数 string 可以根据项目的统计需要,可以增加很多项

接口返回数据格式 protobuffer数据

参数名称 参数类型 参数描述
strPlatformUserID string 账号Id,则验证失败:-1、账号封停:-3
strAccountName string strPlatformUserID
lTime long 时间戳
strCM string 是否成人
成人:1
未成人:0
strToken string 签名:md5(strPlatformUserID+strAccountName+lTime+strCM+私钥)
QQ string 联系方式
ZtSign string 签名 全民奇迹用 ,其他项目已经作废

验证SID后,返回游戏账号

  1. /// <summary>
  2. /// 验证SID后,返回平台用户ID
  3. /// </summary>
  4. [ProtoContract]
  5. public class ServerVerifySIDData
  6. {
  7. /// <summary>
  8. /// 返回消息时的时间戳
  9. /// </summary>
  10. [ProtoMember(3)] public long lTime = 0;
  11. /// <summary>
  12. /// 帐户名,跟用户ID相同
  13. /// </summary>
  14. [ProtoMember(2)] public string strAccountName = "";
  15. /// <summary>
  16. /// 是否成人
  17. /// </summary>
  18. [ProtoMember(4)] public string strCM = "1";
  19. /// <summary>
  20. /// 平台用户ID
  21. /// </summary>
  22. [ProtoMember(1)] public string strPlatformUserID = "";
  23. /// <summary>
  24. /// 参数加密-双线服签名
  25. /// </summary>
  26. [ProtoMember(5)] public string strToken = "";
  27. /// <summary>
  28. /// 客服QQ
  29. /// </summary>
  30. [ProtoMember(6)]
  31. public string QQ = ConfigurationManager.AppSettings["QQ"];
  32. /// <summary>
  33. /// 主题服签名
  34. /// </summary>
  35. [ProtoMember(7)]
  36. public string ZtSign = "";
  37. }

五、NameServer-检查创建角色/战盟 时是否重名

5.1、总体说明
5.1.1)检查角色名是否重名页面名称:checkname.php;检查战盟名称是否重名 页面名称:checkzhanmeng.php
5.1.2)请求的url是固定的参数,包括roleName,CrcName
5.1.3)接口中所有的参数都是utf8编码
5.1.4)平台提供http协议接口,post请求
5.1.5)具体url链接由运维提供
5.1.6)内网测试地址:http://192.168.0.49/nameserver/checkname.php
5.1.7)当玩家点击创建角色时,提交验证,而不是玩家在选择角色名时提交验证(全民2-大陆上线时就出现这个问题,导致上百万备选的角色名在短时间被使用完)
5.2、客户端提交给平台的参数

参数名称 参数类型 参数描述
roleName string 角色名
CrcName string 角色名crc32加密串

5.2、平台返回值字符串数据
角色名不存在返回: 角色名,ture,角色名加密串
角色名已经存在返回: 角色名,false,角色名加密串

注意事项:
1、字符限制
客户端需要限制特殊字符、表情等字符的输入
2、如果用钻石或元宝改角色名,也调用此功能 避免改名时出现角色名重名的问题

六、pay-获取订单号

6.1、总体说明
6.1.1)页面名称:getexchangeorder.php;
6.1.2)请求的url是固定的参数,包括strPlatform,strUserID,strMoney,nServerID,lTime,roleName,roleId,strMD5,ZhiGouID;
6.1.3)body部分是json串;
6.1.4)接口中所有的参数都是utf8编码
6.1.5)平台提供http协议接口,post请求
6.1.6)具体url链接由运维提供
6.1.7)内网测试地址:http://192.168.0.49/pay/getexchangeorder.php
6.1.8)生成订单号的好在于能复用 掌趣的计费点,比掌趣的6元计费点,游戏可以用6元购买不同的道具,只要在下单时 把直购id带上即可。

6.2、客户端提交给平台的参数

参数名称 参数类型 参数描述
strPlatform string 渠道标识
strUserID string 账号Id
roleId string 角色Id
roleName string 角色名
nServerID string 充值区服Id
strMoney string 充值金额
ZhiGouID string 直购Id
lTime string 时间戳
strMd5 string 签名md5(私钥+strPlatform+strUserID+strMoney+lTime)

请求示例:
{
“strMoney”:”300”,
“nServerID”:1,
“roleId”:120003,
“strUserID”:”HERO10625299”,
“strPlatform”:”HERO”,
“strMD5”:”4ED2C38783B89ECED0867623ECF7F18D”,
“roleName”:”\u8d6b\u5c3c-\u8c9d\u8482\u5a1c”,
“lTime”:575932477952,
“ZhiGouID”:”0”,
}

6.2、接口返回给客户端参数json

参数名称 参数类型 参数描述
strExchangeOrder string 交易流水号
strExtParam string 扩展参数
lTime string 发送消息时的时间戳
strMD5 string 签名:md5(strExchangeOrder+strExtParam+lTime+私钥)

七、BuffServerInfo 数据格式

[ProtoContract]
public class BuffServerInfo
{
///


/// 服务器编号
///
[ProtoMember(1)]
public int nServerOrder;
  1. /// <summary>
  2. /// 服务器ID
  3. /// </summary>
  4. [ProtoMember(2)]
  5. public int nServerID;
  6. /// <summary>
  7. /// 目前没有使用-是否是爆满状态
  8. /// </summary>
  9. [ProtoMember(3)]
  10. public int busyStatus;
  11. /// <summary>
  12. /// MAP在线数
  13. /// </summary>
  14. [ProtoMember(4)]
  15. public List<int> listMapOnline = new List<int>();
  16. /// <summary>
  17. /// 服务器名称
  18. /// </summary>
  19. [ProtoMember(5)]
  20. public string strServerName = "";
  21. /// <summary>
  22. /// 服务器启动时间
  23. /// </summary>
  24. [ProtoMember(6)]
  25. public string strStartTime = "";
  26. /// <summary>
  27. /// 服务器状态
  28. /// </summary>
  29. [ProtoMember(7)]
  30. public int nStatus;
  31. /// <summary>
  32. /// 服务器地址
  33. /// </summary>
  34. [ProtoMember(8)]
  35. public string strURL;
  36. /// <summary>
  37. /// 服务器端口
  38. /// </summary>
  39. [ProtoMember(9)]
  40. public int nServerPort;
  41. /// <summary>
  42. /// 维护公告内容
  43. /// </summary>
  44. [ProtoMember(10)]
  45. public string strMaintainTxt;
  46. /// <summary>
  47. /// 维护开始时间
  48. /// </summary>
  49. [ProtoMember(11)]
  50. public string strMaintainStarTime;
  51. /// <summary>
  52. /// 维护结束时间
  53. /// </summary>
  54. [ProtoMember(12)]
  55. public string strMaintainTerminalTime;
  56. /// <summary>
  57. /// 服务端版本号
  58. /// </summary>
  59. [ProtoMember(13)]
  60. public string SerVersion;
  61. /// <summary>
  62. /// 客户端版本号
  63. /// </summary>
  64. [ProtoMember(14)]
  65. public string CliVersion;
  66. /// <summary>
  67. /// 是否开启强制更新:0:不开启、1:开启k
  68. /// </summary>
  69. [ProtoMember(15)]
  70. public string Forceup;
  71. /// <summary>
  72. /// 服务器别名
  73. /// </summary>
  74. [ProtoMember(16)]
  75. public string SerNickName;
  76. /// <summary>
  77. /// 服务器 微信:1、手Q:2
  78. /// </summary>
  79. [ProtoMember(17)]
  80. public string AreaId;
  81. /// <summary>
  82. /// 平台 IOS:0、android:1
  83. /// </summary>
  84. [ProtoMember(18)]
  85. public string PtId;
  86. //字段编号:19
  87. //字段名称:freeip
  88. //字段类型:string
  89. //字段规则:必填
  90. //说明:免流量地址
  91. /// <summary>
  92. /// 免流量地址
  93. /// </summary>
  94. [ProtoMember(19)]
  95. public string freeip;
  96. //字段编号:20
  97. //字段名称:freeport
  98. //字段类型:string
  99. //字段规则:必填
  100. //说明:免流量端口
  101. /// <summary>
  102. /// 免流量端口
  103. /// </summary>
  104. [ProtoMember(20)]
  105. public string freeport;
  106. //字段编号:21
  107. //字段名称:newstatus
  108. //字段类型:string
  109. //字段规则:必填
  110. //说明:新服标识(1新服,0非新服)
  111. /// <summary>
  112. /// 新服标识(1新服,0非新服)
  113. /// </summary>
  114. [ProtoMember(21)]
  115. public string newstatus;
  116. //字段编号:22
  117. //字段名称:suggeststatus
  118. //字段类型:string
  119. //字段规则:必填
  120. //说明:推荐标识(1推荐,0不推荐)
  121. /// <summary>
  122. /// 推荐标识(1推荐,0不推荐)
  123. /// </summary>
  124. [ProtoMember(22)]
  125. public string suggeststatus;
  126. /// <summary>
  127. /// 专属ID 对应BuffZhuanShuInfo的zhuanshuid
  128. /// </summary>
  129. [ProtoMember(23)]
  130. public string zhuanshuid;
  131. }