1、CROWN TECHNOLOGY CTAPI游戏接入接口 使用说明文档 V1.7 CTAPI游戏接入接口 1 1. 概述 2 2. 协议约定及功能接口 2 2.1 通讯规范 2 2.1.1数据结构 3 2.1.2安全验证 3 2.1.3响应规范 3 2.1.4 错误码 3 2.2 接口列表及数据约定 4 2.2.1获取会员登录URL[核心接口] 4 2.2.2获取供应商会员信息 6 2.2.3会员存款[核心接口] 6 2.2.4会员取款[核心接口] 7 2.2.5会员存取款状态查询[核心接口] 8 2.2.6在线会员列表 9 2.2.7 注销在线会员 9
2、2.2.8 会员状态更新 10 2.2.9 按时间查询已结算和已撤销注单[此接口仅作查询之用] 11 2.2.10 按时间查询未结算注单[此接口仅作查询之用] 12 2.2.11 获取结算/撤销注单[与2.2.12配对使用][取注单请使用此接口][核心接口] 13 2.2.12 标记结算/撤销注单[与2.2.11配对使用][核心接口] 14 2.2.13 按时间查询已结算和已撤销注单数目 14 2.2.14 按时间查询未结算注单数目 15 2.2.15按注单号查询未结算/已结算/已撤销注单 16 3. 附录 16 3.1 桌号、类型对应表 16 3.2货币列表 16 3.
3、3语言列表 17 3.4 注单说明 17 3.5下注及输赢结果说明 17 1. 概述 本文档主要叙述CT游戏中心服务器与游戏接入商服务器之间的数据通讯协议及规范,双方的软件在此基础上达到数据高性能、高安全性进行交换与共享的目的。 [核心接口]表明此接口极为重要,如有任何疑问,请及时与供应商方面联系。 随本文档一起还有“demo_xx.txt”,“CasinoLimit_xxxxxx.xlsx”,“CtapiDemoJs”客户端Demo。 系统时区:GMT+7 系统维护时间:每周二(12:00-13:00)(GMT+7) 2. 协议约定及功能接口 2.1
4、通讯规范
2.1.1数据结构
http://
5、rityKey:由供商提供(在demo[xx..xx].txt中)
Ø 来源检查
由接入商提供,一个agent可以对应多个referer(暂时没用)。
Ø IP过滤
由接入商提供系列IP,IP跟agent进行绑定。测试机不检测IP绑定,正式机强制性检测IP绑定。
2.1.3响应规范
6、表为一般错误表: 错误码 文本数据 描述 -1 System maintenance 系统维护 -2 Invalid action 命令标识符错误 -3 Invalid arguments 请求参数错误 -4 IP address not allow IP限制 -5 Invalid username 用户名或代理错误 -6 System error 系统错误 2.2 接口列表及数据约定 接入端在请求数据时,需根据接口的不同组织相应的参数为字符串,通过TCP连接发送至服务器端,服务器端通过约定以特定分隔符将字符串解析为对应参数,处理完成后,
7、将结果组织为字符串通过TCP连接发回接入端。 在通讯过程中,为保证数据的正确性和提高程序性能,通讯过程中数据类型与字符串之间的转换按下表规范: 数据类型 描述 示例 String Unicode字符串 如:hello,abc123 Byte 可转为标准数字 如:-123,9 范围:-128~127 Integer 可转为标准数字 如:-123,9 范围:-2147483648~2147483647 Long 可转为标准数字 如:-123,4,5099 范围:-9223372036854774808~9223372036854774807 Double
8、 可转为标准浮点数 如:-1.23,4,5.09 范围:4.9000000e-324~1.797693e+308 Boolean bool值 True,False Date 以yyyy-MM-dd HH:mm:ss 形式的字符串 如:2011-01-31 19:25:34 为便于客户端与服务器端易于解析数据,以如下分隔符作为数据分隔使用的特殊字符(因此在正常数据内容中,不应包括如下特殊字符): 第一层数据分隔符:| 第二层数据分隔符:` 第三层数据分隔符:, 客户端在接收到来自服务器端的返回数据Data,并转化为字符串时,按接口约定,对该字符串以分隔符
9、从低层至高层拆分,得到最终数据。 2.2.1获取会员登录URL[核心接口] 操作描述 获取供会员登录到供应商进行游戏的URL。首先供应商会检测用户是否存在,若存在,返回登录URL;若不存在,供应商自动创建账号,如果创建成功,返回登录URL,如果创建失败,返回错误原因。 注意:调用完此接口,会员需使用返回的URL登录游戏大厅。 使用场景 用户登录。使用时机,会员登录前。 命令标识符 1 参数及组合格式 Lang|Currency|MaxWin|Limit|Token 例:cn|RMB|900.0|578,579,580,`589,590,588,587,`594,
10、592,593,591,`710,712,713,714,`-1` 1151,1183,1184,1185,`1923,|b69af9287876c8cfc42096be301b233c 例:cn|RMB|900.0||b69af9287876c8cfc42096be301b233c 参数说明 参数 类型 描述 Lang String 语言(见语言列表) Currency String 货币(见货币列表) MaxWin Double 该会员的单日最大可赢取金额。(当天12点到第二天12点) 注: a)会员最后一笔下注有可能超过最大限额 b)负数或0表示不限制用
11、户赢取金额 Limit String 此处为各游戏限红[详见CasinoLimit_xxxxxx.xlsx]: 顺序为:百家乐|轮盘|赛宝|龙虎|番摊|保险百家乐|色碟 最多四条限红, 注: a)-1为游戏不可玩 b)当Limit为空时,供应商自动提供四条最小限红 例:578,579,580,`589,590,588,587,`594,592,593,591,` 710,712,713,714,`-1`1151,1183,1184,1185,`1923, Token String Md5加密生成的验证码,产生规则:Md5(“SecurityKey+Currency+Age
12、nt+UserName+Lang+MaxWin”),(见加密算法)。
例:Md5(“sc4XgdJc85RMBLiga365usd000cn900.0”)=d4493b6a9cc9f682c52dc82bbcc14150
返回数据描述
例:code>01
13、0,提取
14、表示正常,此时会员可登录游戏大厅并可下注;“Supend”表示暂停,此时会员可登录游戏大厅但不可下注;”Closed”表示停用,此时会员不可登录游戏大厅。会员余额信息,表示用户可用于下注的金额或提取的余额。
使用场景
1#检测会员是否已存在。使用时机,调用2.2.1(获取会员登录URL)接口失败时。
2#检测会员是否在线。使用时机,调用2.2.7(注销在线会员)接口前。
3#查询会员是否正常。使用时机,调用2.2.8(会员状态更新)接口后。
4#查询会员余额。使用时机,调用2.2.4(会员取款)接口前。
命令标识符
2
参数及组合格式
返回数据描述
15、status>Online[Offline]
16、ext>User not exist
17、2.2.5(会员存取款状态查询)接口进行确认。
命令标识符
3
参数及组合格式
Serial|Amount|Currency|Token
例:32535|36.58|RMB|9264477335c078ca871a28b2fc8c0448
参数
类型
描述
Serial
Long
会员转账流水号(唯一),由接入商产生。
Amount
Double
a)精度小数点两位,格式:######.00;
b)大于0;
Currency
String
货币(见货币列表),
注:币种为空时,不作检查。
Token
String
Md5加密生成的验证码,产生规则: 18、Md5(“SecurityKey+Amount+Agent+UserName+ Serial”),(见加密算法)。
例:Md5(“sc4XgdJc8536.58Liga365usd00032535”)=9264477335c078ca871a28b2fc8c0448
返回数据描述
成功:返回转账金额
例: 19、ccess
操作成功,返回用户信息
1
User not exist
用户不存在
2
Duplicated serial
流水号存在
3
Currency error
币种错误
4
Deposit error
其它错误
2.2.4会员取款[核心接口]
操作描述
会员将游戏供应商的账户上金额转存到接入商,取款时需调用“检查用户状态”接口检查用户金额避免错误。
使用场景
会员将钱从CASINO取出,建议调用2.2.5(会员存取款状态查询)接口进行确认。
命令标识符
4
参数及组合格式
Serial|Amount|Currency|Token
例 20、32536|36.58|RMB|c7e1ba9f2e033e400d329793c55bcd62
参数
类型
描述
Serial
Long
会员转账流水号(唯一),由接入商产生。
Amount
Double
a)精度小数点两位,格式:######.00;
b)大于0;
Currency
String
货币(见货币列表),
注:币种为空时,不作检查。
Token
String
Md5加密生成的验证码,产生规则:Md5(“SecurityKey+Amount+Agent+UserName+ Serial”),(见加密算法)。
例:Md5(“sc4XgdJc8 21、536.58Liga365usd00032536”)=c7e1ba9f2e033e400d329793c55bcd62
返回数据描述
成功:返回转账金额
例: 22、
Currency error
币种错误
4
Withdrawal error
其它错误
2.2.5会员存取款状态查询[核心接口]
操作描述
查询指定流水号存款或取款是否成功,若成功,则返回相关信息,否则返回流水号不存在。
使用场景
确认存取款是否成功。使用时机,调用完2.2.3(会员存款)接口或2.2.4(会员取款)接口后。
命令标识符
5
参数及组合格式
Serial
注意:username此处空或任意值。
例:32536
参数
类型
描述
Serial
Long
会员转账流水号(唯一),由接入商产生。
返回数据描述
23、Serial
24、Serial not exist
25、
命令标识符
6
参数及组合格式
注意:username此处空或任意值。
返回数据描述
26、2.2.7 注销在线会员
操作描述
将正在游戏中的会员强制踢出系统。
使用场景
命令标识符
7
参数及组合格式
username 1|[ username 2]|[ username 3]|[ username 4]
注意:username此处空或任意值。param参数为空注销所有会员,。
返回数据描述
27、me> 28、Success成功
b)Fail失败(参数为空,或者不在线时)
2.2.8 会员状态更新
操作描述
更新会员账号的状态。不同状态说明,详见2.2.2(获取供应商会员信息)接口。
使用场景
命令标识符
8
参数及组合格式
Username 1`Status 1|[Username 2`Status 2]
注意:username此处无用,不作处理。
例:usd000`1|usd001`2
参数
类型
描述
Type
Byte
1:激活用户
2:暂停用户
3:关闭用户
返回数据描述
29、name 30、tatus> 31、隔不能小于15秒,否则系统不予处理。(此功能很少用)
警告:此接口仅作查询之用,取注单请使用2.2.11号接口
使用场景
极少使用
命令标识符
9
参数及组合格式
StartTime|EndTime
例:2011-01-31 19:25:34|2011-01-31 19:27:34
注意:username为空,查询所有会员注单信息;不为空,查询单个会员下注信息。
参数
类型
描述
StartTime
Date
注单的开始时间,结算时间或撤消时间(包括此时间点)
EndTime
Date
注单的结束时间,结算时间或撤消时间(不包括此时间点)
返回数据描述
32、例: 33、> 34、esult>
格式:
35、4:20:35---String(yyyy-MM-dd HH:mm:ss)(结算或撤消时间,特别说明:此字段对已结算或已撤消的注单有意义;对于未结算注单,是没有意义的,此时值为1970-01-01 00:00:00)
36、0.0 --- double (下注之前的余额)
37、戏中,每洗一次牌 就是一靴,代表靴号)
38、0#0.0#0.0^8000.0#0.0#0.0^0.0#0.0#0.0^0.0#0.0#0.0^0.0#0.0#0.0^0.0#0.0#0.0^0.0#0.0#0.0^ --String (计算结果明细,具体格式见计算的文档)
39、lebet>7800.0--double(实际有效下注,即可以计算结果的下注,此你下注了8000但是有效的只有7800)
计算说明:会员净输赢 = WinOrLoss – BetPoints
例如:
BetPoints = 100.0, WinOrLoss = 0.0, 表示会员输100.0;
BetPoints = 100.0, WinOrLoss = 100.0,表示会员没输没赢;
BetPoints = 100.0, WinOrLoss = 200.0, 表示会员赢100.0;
索引
文本数据
描述
0
Success 40、
返回注单信息
1
Fetch time is too short
抓取注单间隔太短
2
Time interval is too long
时间差太长
2.2.10 按时间查询未结算注单[此接口仅作查询之用]
操作描述
此功能用来获取一段时间内的未结算的注单,所有注单按时间排序,最大100笔。时间差不能超过30天且抓取注单间隔不能小于15秒,否则系统不予处理。(此功能很少用)
警告:此接口仅作查询之用
使用场景
极少使用
命令标识符
10
参数及组合格式
StartTime|EndTime
例:2011-01-31 19:25:34|2011-0 41、1-31 19:27:34
注意:username为空,查询所有会员注单信息;不为空,查询单个会员下注信息。
参数
类型
描述
StartTime
Date
注单的开始时间,下注时间(包括此时间点)
EndTime
Date
注单的结束时间,下注时间(不包括此时间点)
返回数据描述
索引
文本数据
描述
0
Success
返回注单信息,格式如2.2.9
1
Fetch time is too short
抓取注单间隔太短
2
Time interval is too long
时间差太长
2.2.11 获取结算/撤销注单[与2.2.1 42、2配对使用][取注单请使用此接口][核心接口]
操作描述
此功能用来获取结算和撤销注单,所有注单按时间排序,最大100笔。抓取注单间隔不能小于15秒,否则系统不予处理。同时,由于供应商存在改注单及撤销情况,接入商需要对注单ID进行比对,及时对已存在注单进行更新。
注:重点对撤销及改注单情况进行说明:
如果接入商接收相同的注单 43、
b、 44、rt
抓取注单间隔太短
操作步骤:
a)调用2.2.11接口
b)客户端业务处理
c)提取出所有transaction_id
d)调用2.2.12接口,提交这些transaction_id
2.2.12 标记结算/撤销注单[与2.2.11配对使用][核心接口]
操作描述
此功能用来标记接入商已收到的注单。接入商在收到注单,并成功处理后,请务必调用该接口对注单进行标记,避免相同注单。最大处理100条。
使用场景
调用完2.2.11(获取结算/撤销注单)接口后。
命令标识符
12
参数及组合格式
Ticket 1|[Ticket 2]|[Ticket 3] 45、
注意:username此处无用,不作处理。
例:19851|19856|20081
参数
类型
描述
Ticket
Long
注单号,即transaction_id。
返回数据描述
例: 46、
标记失败。
2.2.13 按时间查询已结算和已撤销注单数目
操作描述
此功能用来获取一段时间内的结算和撤销注单数目
使用场景
命令标识符
13
参数及组合格式
StartTime|EndTime
例:2011-01-31 19:25:34|2011-01-31 19:27:34
注意:username为空,查询所有会员注单数目信息;不为空,查询单个会员注单数目信息
参数
类型
描述
StartTime
Date
注单的开始时间,结算时间或撤消时间(包括此时间点)
EndTime
Date
注单的结束时间,结算时间或撤消时间(不包括此时间点)
47、
返回数据描述
例: 48、 49、单数目信息
2.2.14 按时间查询未结算注单数目
操作描述
此功能用来获取一段时间内的未结算的注单数目
使用场景
命令标识符
14
参数及组合格式
StartTime|EndTime
例:2011-01-31 19:25:34|2011-01-31 19:27:34
注意:username为空,查询所有会员注单数目信息;不为空,查询单个会员注单数目信息。
参数
类型
描述
StartTime
Date
注单的开始时间,下注时间(包括此时间点)
EndTime
Date
注单的结束时间,下注时间(不包括此时间点)
返回数据描述
等式关系:t 50、otal_count = uncalcuated_count + calcuated_count + canceled_count
此处:alcuated_count =0,canceled_count = 0
索引
文本数据
描述
0
Success
返回注单数目信息,格式如2.2.13
2.2.15按注单号查询未结算/已结算/已撤销注单
操作描述
此功能用来查询指定单号的注单信息。
使用场景
命令标识符
15
参数及组合格式
Ticket 1|[Ticket 2]|[Ticket 3]
注意:username此处无用,不作处理。
例:1985101020201-6000000






