Web 服務 API v1.0.11

技术指引

1.文档简介

Web Service API 接口用于接入SimplePlay,包括注册、查询用户账户、用户下注记录查询和从账户提现或者账户充值的功能。本文档包括转帐钱包及单一钱包。

2.文档版本历史

版本描述日期
1.0.71. CheckOrderId 新增返回数据的参数: Date, Type, Currency, Amount, PreviousBalance 及 Balance
2. 新增 API GetFishingDetailsURL 作为获取一局捕魚游戏的详细资料 URL
2021/11/25
1.0.81. GetUserStatus - 返回数据 BettedAmount 重新命名為 BetAmount
2. DebitBalance & CreditBalance - 返回数据 Balance 分拆為 Balance, BetAmount 和 WithholdAmount
3. DebitAllBalance - 新增返回数据 Balance, BetAmount 和 WithholdAmount
2021/12/30
1.0.91. LoginRequest 及 LoginRequestForFun - 请求参数 GameCode 将新增 EG-SLOT-A050、EG-SLOT-A051 及 EG-SLOT-A052
2. GetAllBetDetails 及 GetAllBetDetailsForTimeInterval - 返回数据的参数 Detail 将新增 EG-SLOT-A050、EG-SLOT-A051 及 EG-SLOT-A052
3. 单一钱包 - PlaceBet, PlayerWin, PlayerLost & PlaceBetCancel - 请求参数 GameCode 将新增 EG-SLOT-A050、EG-SLOT-A051 及 EG-SLOT-A052
4. 添加新货币“以色列谢克尔”
5. 参数 username 的长度由20个字元更改为28个字元
6. GetFishingDetailsURL 及 GetSlotDetailsURL - 新增参数 Lang
2022/10/13
1.0.101. 添加新货币“寮币”
2. GetSlotDetailsURL 及 GetFishingDetailsURL - 请求参数 Lang 将新增 th、vn、jp、kr、id、it、ms 及 es
2022/11/10
1.0.11添加新货币 “智利比索”、“哈萨克腾格”、“秘鲁新索尔” 及 “突尼西亚第纳尔”2022/12/02

3.API 调用限制

以下的API有调用限制。

API名称调用频率
GetAllBetDetails每5分钟10次
GetAllBetDetailsForTimeInterval每5分钟10次
GetUnfinishedGame每1秒钟10次
JackpotQuery每1分钟1次
LoginRequest每1小時5000次
LoginRequestForFun每1小時200次
RegUserInfo每24小時2000次

点数值精度

所有的点数值只保留小数点后两位, 例如:1000.23, 89.32, 1002304.89。

4.加密流程

4.1.加密要求

所有的网页查询服务在传送之前都要求用DES加密和MD5 Hashing进行数字签名,需确保内容在传输过程中不被修改。

请咨询我们如下信息:

  • Secret Key 密钥
  • EncrypKey 加密键
  • MD5Key  MD5 键
  • API URL
  • 大庁名称 (启动客户端时需要提供)

ASP.Net C# DES加密函数例子:

PHP DES 加密函数例子:

PHP 应用例子:

ASP.Net C# MD5函数例子 :

PHP 应用例子:

4.2.加密流程

  • 创建一个包含要求参数的查询语句 QS(包括网络服务方法名自身 例如 method = RegUserInfo)
  • DES使用提供的 EncryptKey 加密 查询语句QS , 然后获得加密后的查询语句 qs
  • 根据查询语句 QS 和参数 从一个签名 signature(s) 创建一个MD5 哈希.  
  • 使用HTTP POST request 调用 web service
  • 得到XML返回结果

4.3.调用api举例

RegUserInfo作为例子

加密要求的参数

  • method (String, “RegUserInfo”)
  • Key (String, the Secret Key)
  • Time (DateTime, Current Time, in yyyyMMddHHmmss format)
  • Username (String)
  • CurrencyType (String)

method, Key and Time 是必需插入的.其他参数请根据每个API函数参数列表填入.

假设, Secret  Key 是 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX md5key 是 YYYYYYYY.

查询语句QS例子

例如 q=’j4tjorjwarfj3trwise0safrwg2wt4awari0fwjfeoh’

MD5字串构建签名signature 例子(QS + md5key + Time + Key)

例如 s = ‘1234567890abcdef’

POST 查询方法 (请求内容必须使用”Content-Type: application/x-www-form-urlencoded” 格式.)

q=j4tjorjwarfj3trwise0safrwg2wt4awari0fwjfeoh&s=1234567890abcdef

POST 到: http:///api/api.aspx

返回结果:

4.4.错误处理

当发生解密或MD5核对不正确时, 会输出以下的错误回应。

ErrorMsgId 128 解密错误
ErrorMsgId 132 md5 核对不正确

5.WEB SERVICE 接口

所有的服务都需要 secret key 才可以使用。请联络我们获取一个。

5.1.会员户口操作

5.1.1.RegUserInfo

使用用户名和币种创建一个用户。

输入参数
名称描述类型和长度限制必填?
method必须是”RegUserInfo”String (32)Y
Key密钥String (32)Y
Time当前时间 时间格式:“yyyyMMddHHmmss”DateTimeY
Username用户名. 文字数字String (28)Y
CurrencyType币种, 详情请参阅货币类型String (16)Y
返回结果
名称描述类型和限制必填?
Username用户名String (28)Y
ErrorMsgId错误信息:
0: 成功
108: 用户名长度或者格式错误
113: 用户名已存在
114: 币种不存在
133: 建立帐户失败
ByteY
ErrorMsg错误信息详细StringY

5.1.2.VerifyUsername

检查数据库中用户名在此大厅是否已经存在。

输入参数
名称描述类型和长度限制必填?
method必须是 “VerifyUsername”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss” DateTimeY
Username用户名String (28)Y
返回结果
名称描述类型和长度限制Required?
IsExist用户是否存在?
True: 用户已经存在
False: 用户不存在
BoolY
Username用户名String (28)Y
ErrorMsgId错误信息:
0: 成功
108: 用户名长度格式错误
ByteY
ErrorMsg错误信息详细StringY

输出:

5.1.3.GetUserStatus

该网络服务编程接口用以获取请求用户的状态信息. 这些状态信息包括:

  • 用户在线/离线状态
  • 是否存在未完成下注單
  • 下注限额和余额
  • 会员最大
  • 会员每日最大赢额
输入参数
名称描述类型和长度限制必填?
method必须是 “GetUserStatus”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss” DateTimeY
Username用户名String (28)Y
返回结果
NameDescriptionType and LimitRequired?
IsSuccess成功?
True: 成功
False: 失败
BoolY
Username用户名String (28)Y
Balance用户余额,不包括因未完成的老虎机或捕鱼游戏而被扣起的金额DecimalY
Online是否在线?BoolY
Betted是否下注?BoolY
BetAmount因未完成的老虎机游戏而被扣起的总金额DecimalY
MaxBalance最大帐户馀额DecimalY
MaxWinning最大帐户赢额DecimalY
WithholdAmount因未完成的捕鱼游戏而被扣起的总金额DecimalY
ErrorMsgId错误信息:
0: 成功
100: 用户名错误
108: 用户名长度格或式错误
116: 用户名不存在
ByteY
ErrorMsg错误信息详细StringY

输出

 

5.1.4.SetUserMaxBalance

设定会员的最大帐户馀额。该值必需为0 或者少於会员帐户结馀。

输入参数
名称描述类型和长度限制必填?
method必须是“SetUserMaxBalance”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username用户名String (28)Y
MaxBalance最大帐户馀额DecimalY
返回结果
名称描述类型和长度限制必填?
ErrorMsgId错误信息:
0: 成功
116: 用户名不存在
142: 输入参数错误
148: 最大馀额不等於 0 或小於帐户结馀
ByteY
ErrorMsg错误信息详细StringY

5.1.5.SetUserMaxWinning

设定会员每日最大赢额。当会员赢额超过最大赢额,会员将不能下注。

输入参数
名称描述类型和长度限制必填?
method必须是“SetUserMaxWinning”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username用户名String (28)Y
MaxWinning最大帐户贏额DecimalY
返回结果
名称描述类型和长度限制必填?
ErrorMsgId错误信息:
0: 成功
116: 用户名不存在
142: 输入参数错误
ByteY
ErrorMsg错误信息详细StringY

5.1.6.GetUnfinishedGame

该网络服务将获取用户最近十天內未完成的老虎机游戏。每1秒钟可以调用10次,否则报错。

输入参数
名称描述类型和长度限制必填?
method必须是 “GetUnfinishedGame”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss” DateTimeY
Username用户名String (28)Y
返回结果
NameDescriptionType and LimitRequired?
Username用户名String (28)Y
UnfinishedGameDetailList未完成的老虎机游戏详细列表XMLY
ErrorMsgId错误信息:
0: 成功
100: 用户名错误
108: 用户名长度格或式错误
116: 用户名不存在
ByteY
ErrorMsg错误信息详细StringY

输出

5.2.登入功能

5.2.1.LoginRequest

登录SimplePlay系统。如果用户名不存在,则会自动创建。

输入参数
名称描述类型和长度限制必填?
method必须是 “LoginRequest”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss” DateTimeY
Username用户名String (28)Y
CurrencyType币种, 详情请参阅货币类型String (16)Y
GameCode(选填)
没有输入GameCode将返回进入游戏大厅的 GameURL
輸入GameCode将返回直接进入老虎机游戏或捕鱼游戏的 GameURL

老虎机游戏代码或捕鱼游戏代码, 详情请参照第9节.
String (16)N
Lang语言。请参考下面列表。StringN
Mobile以手机版显示
1 - 使用手机版
0 - 不使用手机版
BoolN
Lang 参数
描述
zh_TW繁体中文
zh_CN简体中文
en_US英文
th泰文
vn越南文
jp日文
kr韩文
id印尼文
it意大利文*
ms马来文*
es西班牙文*

* 只支援鱼乐无穷

返回结果
名称描述类型和长度限制必填?
Token#登录令牌StringY
DisplayName*系统内使用的登入名称String (31)Y
GameURL完整的遊戲 URL 以启动老虎机游戏大厅,老虎机游戏或捕鱼游戏。

按以下指示启动不同的游戏 :
启动游戏大厅
启动老虎机游戏
启动捕鱼游戏
StringN
ErrorMsgId错误信息:
0: 成功
129: 系统正在维护
130: 用户账户锁定(无效)
133: 建立帐户失败
134: 游戏代码不存在
135: 游戏没有开放
ByteY
ErrorMsg错误信息详细StringY

# 如果登入要求失败,登录令牌节点不会在回应中出现

* 所有登入名称皆会加上字尾 @xxx. 这个 DisplayName 是为我们在数据库中的资料

5.2.2.LoginRequestForFun

使用免费试玩模式登录系统。用户名会自动生成。

输入参数
名称描述类型和长度限制必填?
method必须是 “LoginRequestForFun”String (32)Y
Key密钥String (32)Y
Time当前时间格式 “yyyyMMddHHmmss”DateTimeY
Amount初始账户金额DecimalY
CurrencyType币种, 详情请参阅货币类型String (16)Y
GameCode(选填)
没有輸入GameCode将返回进入游戏大厅的 GameURL
輸入GameCode将返回直接进入老虎机游戏或捕鱼游戏的 GameURL

老虎机游戏代码或捕鱼游戏代码, 详情请参照第9节.
String (16)N
Lang语言。请参考下面列表。StringN
Mobile以手机版显示
1 - 使用手机版
0 - 不使用手机版
BoolN
返回结果
名称描述类型和长度限制必填?
Token#登录令牌StringY
DisplayName*系统内使用的登入名称String (31)Y
GameURL完整的遊戲 URL 以启动老虎机游戏大厅,老虎机游戏或捕鱼游戏。

按以下指示启动不同的游戏 :
启动游戏大厅
启动老虎机游戏
启动捕鱼游戏
StringN
ErrorMsgId错误信息:
0: 成功
129: 系统正在维护
134: 游戏代码不存在
135: 游戏没有开放
ByteY
ErrorMsg错误信息详细StringY

# 如果登入要求失败,登录令牌节点不会在回应中出现

* 所有登入名称皆会加上字尾 @xxx. 这个 DisplayName 是为我们在数据库中的资料

5.2.3.KickUser

强制会员离线

输入参数
名称描述类型和长度限制必填?
method必须是 “KickUser”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username用户名String (28)Y
返回结果
名称描述类型和长度限制必填?
ErrorMsgId错误信息:
0: 成功
104: 服务器不可用
108: 用户名长度或格式错误
116: 用户名不存在
125: 强制用户离线失败
ByteY
ErrorMsg错误信息详细StringY

输出:

5.3.投注记录查询

5.3.1.GetAllBetDetails

此服务用于获取当前大厅当指定日子(中午12:00:00至上午11:59:59)的下注信息,没有指定日期则使用服务器当天日期。每5分钟可以调用10次,否则报错。

输入参数
名称描述类型和长度限制必填?
method必须是 “GetAllBetDetails”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username用户名 (选填)String (28)N
Date日期详细信息 (选填)
"yyyy-MM-dd”
DateN
返回结果
名称描述类型和长度限制必填?
BetDetailList投注信息详细XMLY
ErrorMsgId错误信息:
0: 成功
108: 用户名长度或格式错误
112: 近期已调用
116: 用户名不存在
142: 输入参数错误
ByteY
ErrorMsg错误信息详细StringY
投注信息详细
名称描述类型和长度限制必填?
BetTime投注时间Date TimeY
PayoutTime结算时间Date TimeY
Username用户名String (28)Y
Detail游戏代码StringY
GameID游戏编号StringY
BetID投注编号Int64Y
BetAmount投注金额DecimalY
Rolling有效投注额/洗碼量DecimalY
Balance投注後的馀额DecimalY
ResultAmount输赢金额DecimalY
GameType游戏类型
slot - 老虎机游戏
multiplayer - 捕鱼游戏
StringY
BetSource
2/2114/2640网页版
4/4100API
16/600/8792/8793移动网页版(HTML5)
1160/1161/5248/5249iOS 手机版
1288/1289/5376/5377安卓 手机版
IntY
TransactionID单一钱包下注交易编号
如非单一钱包接口,编号为 -1
Int64Y
JackpotContribution累积大奖供款。最多9位浮点数DecimalY
PrizeID老虎机免费奖励的奖品IDIntegerN

沒有獎品ID的输出:

獎品ID的输出:

累積大獎的输出:

5.3.2.GetAllBetDetailsForTimeInterval

此服务用于获取当前大厅任意日子24小時內的的下注信息。每5分钟可以调用10次,否则报错。

输入参数
名称描述类型和长度限制必填?
method必须是 “GetAllBetDetailsForTimeInterval”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss” DateTimeY
Username用户名 (选填)String (28)N
FromTime日期详细信息 "yyyy-MM-dd HH:mm:ss”Date TimeY
ToTime日期详细信息 "yyyy-MM-dd HH:mm:ss”Date TimeY
返回结果
名称描述类型和长度限制必填?
BetDetailList投注信息详细XMLY
ErrorMsgId错误信息:
0: 成功
108: 用户名长度或格式错误
111: 查询时间范围超出限制
112: 近期已调用
116: 用户名不存在
142: 输入参数错误
ByteY
ErrorMsg错误信息详细StringY

投注信息详细和 GetAllBetDetails 相同。

5.3.3.GetUserBetAmount

此服务会从大厅取得所有在线游戏投注总额

输入参数
名称描述类型和长度限制必填?
method必须是 “GetUserBetAmount”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username用户名String (28)N
StartDate起始时间 (默认当前日期)
"yyyy-MM-dd HH:mm:ss"
DateTimeN
TimeRange小时范围 0 到 23 (默认 0 = 24 小时)IntN
返回结果
名称描述类型和长度限制必填?
Username用户名String (28)Y
StakeAmount所有游戏投注总额DecimalY
ErrorMsgId错误信息:
0: 成功
108: 用户名长度或格式错误
116: 用户名不存在
ByteY
ErrorMsg错误信息详细StringY

5.3.4.GetUserWinLost

此 API 用来得到一个会员在某最長31天內的输赢金额

输入参数
名称描述类型和长度限制必填?
method必须是 “GetUserWinLost”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username用户名String (28)Y
FromTime开始日期时间:
"yyyy-MM-dd HH:mm:ss"
DateTimeY
ToTime完结日期时间:
"yyyy-MM-dd HH:mm:ss"
DateTimeY
Type查询类别
0 - 所有
1 - 赢的
2 - 输的
IntN
返回结果
名称描述类型和长度限制必填?
Username用户名String (28)Y
Winlost输赢金额DecimalY
ErrorMsgId错误信息:
0: 成功
106: 伺服器未准备, 稍后尝试
108: 用户名长度或格式错误
111: 查询时间超过限制
116: 用户名不存在
144: 查询类别错误
ByteY
ErrorMsg错误信息详细StringY

5.3.5.GetTransactionDetails

该网络服务API用以获取大厅在一个时间区间内的交易细节记录, 允许最长时间间隔是31天。你可以填入用户名称,查询个别会员的交易资料。

输入参数
名称描述类型和长度限制必填?
method必须是“GetTransactionDetails”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username 用户名 (选填)String (28)N
FromTime起始日期时间:
"yyyy-MM-dd HH:mm:ss"
DateTimeY
ToTime完结日期时间:
"yyyy-MM-dd HH:mm:ss"
DateTimeY
返回结果
名称描述类型和长度限制必填?
Count交易次数IntY
Winlost输赢结果DecimalY
TotalBet总投注额DecimalY
ErrorMsgId错误信息:
0: 成功
106: 伺服器未准备, 稍后尝试
111: 查询时间超过限制
116: 用户名不存在
ByteY
ErrorMsg 错误信息详细StringY

5.3.6.GetSlotDetailsURL

该网络服务API用以获取一局老虎机游戏的详细资料 URL。 (仅接受BetID或GameID一个参数)

输入参数:
名称描述类型和长度限制必填?
method必须是“GetSlotDetailsURL”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
BetID老虎机游戏的投注编号String (20)N
GameID老虎机游戏的游戏编号String (20)N
Lang语言。请参考下面列表。StringN
Lang 参数
描述
zh_TW繁体中文
zh_CN简体中文
en_US英文
th泰文
vn越南文
jp日文
kr韩文
id印尼文
it意大利文
ms马来文
es西班牙文
返回结果:
名称描述类型和长度限制必填?
URL详细资料 URLStringY
ErrorMsgId错误信息
0: 成功
153: 投注编号不存在
ByteY
ErrorMsg错误信息详细StringY

5.3.7.GetFishermenGoldBetDetails

该网络服务API用以获取一局捕鱼游戏内的详细投注内容

输入参数
名称描述类型和长度限必填?
method必须是“GetFishermenGoldBetDetails”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
GameId捕鱼游戏的游戏编号StringY
Page提取的页面编号 (从 0 开始)IntY
返回结果
名称描述类型和长度限制必填?
BetAmount总投注金币Int64Y
WinAmount总赢得金币Int64Y
Currency币种, 详情请参阅货币类型String (16)Y
ExchangeRate金币兑货币汇率IntY
Count总发射子弹数量IntY
ItemCount本次查询得到的资料数量IntY
Limit每页资料数量IntY
BulletDetailsList子弹的详细资料结构XMLY
ErrorMsgId错误信息:
0: 成功
106: 伺服器未准备, 稍后尝试
152: 游戏编号不存在
ByteY
ErrorMsg错误信息详细StringY
子弹信息详细
名称描述类型和长度限制必填?
Denom面额IntY
ID子弹编号Int64Y
Multiplier加乘IntY
Cost子单金币成本IntY
Reward子单金币收入IntY
Species捕获鱼的编号IntY
FreeBulletTotal总免费子弹数量IntY
FreeBulletRemain剩馀免费子弹数量IntY
FreeBulletReward此次得到免费子弹数量IntY

5.3.8.GetFishingGameDetails

此服务将获取一个捕鱼游戏的投注详细信息。

输入参数
名称描述类型和长度限必填?
method必须是"GetFishingGameDetails"String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
GameId捕鱼游戏的游戏编号 String (32)Y
Page提取的页面编号 (从 0 开始)IntY
返回结果
名称描述类型和长度限必填?
GameName游戏名稱String (32)Y
BetAmount总投注DecimalY
WinAmount总赢得DecimalY
Currency币种, 详情请参阅货币类型String (16)Y
ExchangeRate金币兑货币汇率IntY
Count总发射子弹数量IntY
ItemCount本次查询得到的资料数量IntY
Limit每页资料数量IntY
BulletDetailsList子弹的详细资料结构XMLY
ErrorMsgId错误信息:
0: 成功
102: 密钥错误
106: 伺服器未准备, 稍后尝试
152: 游戏编号不存在
ByteY
ErrorMsg错误信息详细StringY
子弹信息详细
名称描述 Type and Limit类型和长度限制 必填?
Denom面额 IntY
ID子弹编号 Int64Y
Multiplier加乘 IntY
Cost子单成本DecimalY
Reward子单收入DecimalY
Species捕获鱼的编号IntY
FreeBulletTotal总免费子弹数量IntY
FreeBulletRemain剩馀免费子弹数量IntY
CreatedAt时间格式“yyyyMMddHHmmss”DateTimeY
FreeBulletMultiplier免费子弹加乘IntY
FreeBulletReward此次得到免费子弹数量IntY

5.3.9.GetFishingDetailsURL

该网络服务API用以获取一局捕魚游戏的详细资料 URL。

输入参数:
名称描述类型和长度限制必填?
method必须是 “GetFishingDetailsURL”String (32)Y
Key密钥String (32)Y
Time当前时间格式 “yyyyMMddHHmmss”DateTimeY
BetID捕魚游戏的投注编号String (20)Y
Lang语言。请参考下面列表。StringN
Lang 参数
描述
zh_TW繁体中文
zh_CN简体中文
en_US英文
th泰文
vn越南文
jp日文
kr韩文
id印尼文
it意大利文
ms马来文
es西班牙文
返回结果:
名称描述类型和长度限制必填?
URL详细资料 URLStringY
ErrorMsgId错误信息
0: 成功
153: 投注编号不存在
ByteY
ErrorMsg错误信息详细StringY

5.4.其他功能

5.4.1.JackpotQuery

此 API 回传老虎机各项大奖的金额。此 API 每隔一分穜调用不能超过一次。

输入参数
名称描述类型和长度限制必填?
method必须是 “JackpotQuery”String (32)Y
Key密钥String (32)Y
Time当前时间格式 “yyyyMMddHHmmss”DateTimeY
Currency币种,详情请参阅货币类型String (16)Y
返回结果
名称描述类型和长度限制必填?
Major大奖累积金额 (单位为 仙)Int64Y
Minor二奖累积金额 (单位为 仙)Int64Y
Mini三奖累积金额 (单位为 仙)Int64Y
ErrorMsgId错误信息:
0: 成功
104: 服务不可用
ByteY
ErrorMsg错误信息详细StringY

5.5.转帐钱包

转帐钱包 API 包括转入,转出和订单状态检查功能。

 

在这些转帐功能中,每个功能中都有一个 OrderID。如果由于网络问题而转帐失败而不成功,请确保使用相同的 OrderID 启动另一次尝试。我们保证相同的 OrderID 将不会被处理两次。对同一转帐使用新的 OrderID 可能会导致重复转帐。即使您已使用 CheckOrderID 检查了 OrderID 不存在,您仍应使用相同的 OrderID。

5.5.1.DebitBalance

从用户账户转出点数。

输入参数
名称描述类型和长度限制必填?
method必须是 “DebitBalance”String (32)Y
Key密钥String (32)Y
Time当前时间格式 “yyyyMMddHHmmss”DateTimeY
Username用户名String (28)Y
OrderId订单ID: OUT+yyyyMMddHHmmss+Username
例如: “OUT20131129130345peter1235”
String (64)Y
DebitAmount借记账户额,精确到分DecimalY
返回结果
名称描述类型和长度限制必填?
Username用户名String (28)Y
Balance用户余额,不包括因未完成的老虎机或捕鱼游戏而被扣起的金额DecimalY
BetAmount因未完成的老虎机游戏而被扣起的总金额DecimalY
WithholdAmount因未完成的捕鱼游戏而被扣起的总金额DecimalY
DebitAmount借记账户额, 精确到分DecimalY
OrderId订单 ID String (64)Y
ErrorMsgId错误信息:
0: 成功
106: 伺服器未准备, 稍后尝试
108: 用户名长度或格式错误
116: 用户不存在
120: 数值必须大于0
121: 信用点或借记点不足
122: 订单ID已经存在
124: 数据库错误
127: 不正确订单格式
142: 输入参数错误
145: 输入浮点数超过2位数错误
ByteY
ErrorMsg错误信息详细 StringY

5.5.2.DebitAllBalance

由用户账户转出全部金额。

输入参数
名称描述类型和长度限制必填?
method必须是 “DebitAllBalance”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username用户名String (28)Y
OrderId订单ID:OUT+yyyyMMddHHmmss+Username
例如:“OUT20131129130345peter1235”
String (64)Y
返回结果
名称描述类型和长度限制必填?
Username用户名String (28)Y
Balance用户余额,不包括因未完成的老虎机或捕鱼游戏而被扣起的金额 DecimalY
BetAmount因未完成的老虎机游戏而被扣起的总金额 DecimalY
WithholdAmount因未完成的捕鱼游戏而被扣起的总金额 DecimalY
DebitAmount借记额. 精确到分DecimalY
OrderId订单 IDString (64)Y
ErrorMsgId错误信息:
0: 成功
106: 伺服器未准备, 稍后尝试
108: 用户名长度或格式错误
116: 用户不存在
122: 订单ID已经存在
124: 数据库错误
127: 不正确订单格式
ByteY
ErrorMsg错误信息详细StringY

5.5.3.CreditBalance

向用户账户充入点数.

输入参数
名称描述类型和长度限制必填?
method必须是 “CreditBalance”String (32)Y
Key密钥String (32)Y
Time当前时间格式“yyyyMMddHHmmss”DateTimeY
Username用户名String (28)Y
OrderId订单 ID: IN+yyyyMMddHHmmss+Username
例如: “IN20131129130345peter1235”
String (64)Y
CreditAmount信用额. 精确到分DecimalY
返回结果
名称描述类型和长度限制必填?
Username用户名String (28)Y
Balance用户余额,不包括因未完成的老虎机或捕鱼游戏而被扣起的金额DecimalY
BetAmount 因未完成的老虎机游戏而被扣起的总金额DecimalY
WithholdAmount 因未完成的捕鱼游戏而被扣起的总金额 DecimalY
CreditAmount信用额. 精确到分DecimalY
OrderId订单 IDString (64)Y
ErrorMsgId错误信息:
0: 成功
106: 伺服器未准备, 稍后尝试
108: 用户名长度或格式错误
116: 用户不存在
120: 数值必须大于0
121: 信用点或借记点不足
122: 订单ID已经存在
124: 数据库错误
127: 不正确订单格式
142: 输入参数错误
145: 输入浮点数超过2位数错误
ByteY
ErrorMsg错误信息详细StringY

5.5.4.CheckOrderId

检查在DebitBalance/DebitAllBalance/CreditBalance 中的 OrderId 状态。

输入参数
名称描述类型和长度限制必填?
method必须是 “CheckOrderId”String (32)Y
Key密钥String (32)Y
Time当前时间格式 “yyyyMMddHHmmss”DateTimeY
OrderId在以下API 中使用的 OrderId
  • DebitBalance
  • DebitAllBalance
  • CreditBalance
String (64)Y
返回结果
名称描述类型和长度限制必填?
isExistOrderId 是否已经存在
  • true - 已经存在
  • false - 不存在

如果为 true,则返回 Date、Type、Currency、Amount、Previous_Balance 和 Balance 参数
boolY
ErrorMsgId错误信息:
0: 成功
106: 伺服器未准备, 稍后尝试
124: 数据库错误
127: 不正确订单格式
ByteY
ErrorMsg错误信息详细StringY
Date交易时间DateTimeN
Type0 - 存款
1 - 提款
ByteN
Currency币种,详情请参阅货币类型String (16)N
Amount转账金额(提款或存款). 精确到分DecimalN
Previous_Balance转账前的余额. 精确到分DecimalN
Balance转账后的余额. 精确到分DecimalN

6.单一钱包

6.1.前言

本部分是要提供第三方系统接入单一钱包的技术资料。

注意: 使用单一钱包后,请勿再使用以下接口改变会员的帐户馀额:CreditBalance,DebitBalance及DebitAllBalance

6.2.流程

第三方系统需要提供以下两种调用接口:

  • GetUserBalance取得会员帐户馀额
  • Fund Transfer帐户点数出入转移

GetUserBalance 接口用来取得会员在第三方系统内的结馀点数。 SimplePlay平台会在会员登入及有需要时提出请求。

帐户点数出入转移接口有以下四个:

  1. PlaceBet
    • 当会员在SimplePlay平台上进行下注时,这个接口就会调用。第三方系统必須在3秒內回覆此請求,否則 SimplePlay 會視此筆請求失效,系统将会取消该投注并调用PlaceBetCancel让第三系统取消交易。
  2. PlayerWin
    • 如果投注在同一局内的不同的投注结算加总后有赢额,就会调用PlaceWin及付上回存到第三方系统的点数。
  3. PlayerLost
    • 如果投注在同一局内的不同的投注结算加总后没有赢额,就会调用PlayerLost
  4. PlaceBetCancel
    • 如果在调用PlaceBet后,因为逾时或没有回应,则此项投注就会取消,同时会调用PlaceBetCancel来告知第三方系统在有需要的下把点数返还给会员。

PlayerWinPlayerLostPlaceBetCancel请求逾时或第三方系统返回错误消息,SimplePlay会不断重发请求至第三方系统直至收到正常回覆。如超过2小时, SimplePlay 会视之为失败并把它标示为失败请求。

一般情況:

  • 收到GetUserBalance请求,无需调整会员余额,返回error=0及会员最新余额
  • 收到PlaceBet请求,把金额从会员帐户扣除, 返回error=0及会员最新余额
  • 收到PlayerWin请求,把金额增加给会员, 返回error=0及会员最新余额
  • 收到PlayerLost请求,无需调整会员余额, 返回error=0及会员最新余额
  • 收到PlaceBetCancel请求,把對應的PlaceBet请求的下注金额退回给会员, 返回error=0及会员最新余额

特殊情況:

  • 收到PlaceBetCancel请求后, 找不到相应的PlaceBet请求或延迟收到相应的PlaceBet请求。无需调整会员余额,返回error=0及会员最新余额。
    >关于延迟收到的PlaceBet请求,建议建立检查程序去处理,建议把PlaceBetCancel请求里的”txn_reverse_id“储存
    >如果贵司系统处理PlaceBetCancel请求后才收到对应的PlaceBet请求,贵司系统有可能会出现一些错误处理的注单状态。为了解决此特殊情况,建议贵司系统可以建立一个每15分钟运行一次的定时检查工作。 检查所有待定/未完成的PlaceBetCancel请求,以其txn_reverse_id去比对过去15分钟所有PlaceBet请求的txnid
    1. 承上,如果找到对应PlaceBet请求,把下注金额退还给玩家,然后完成这两笔PlaceBetPlaceBetCancel请求
    2. 承上,如果未能找到相关的PlaceBet请求,该笔PlaceBetCancel可视为完成状态
      注: 定时检查的建议间距是15分钟,贵司可因应系统需求更改此间距。
  • 收到重复的PlayerWinPlayerLostPlaceBetCancel请求,无需调整会员余额,返回error=0及会员最新余额

**以上每个接口调用时,也会付有一个独一的交易编号,第三方系统必须保证每个交易编号的请求只会被处理一次,重复的请求不能再被处理而直接回覆 SimplePlay 平台成功处理状态(error=0)

第三方系统需提供五个独立的接口(例如: .aspx, .php, etc.)以供 SimplePlay 平台调用:

例如使用ASP.Net:

  • /GetUserBalance.aspx
  • /PlaceBet.aspx
  • /PlayerWin.aspx
  • /PlayerLost.aspx
  • /PlaceBetCancel.aspx

**第三方系统只能使用一种档尾类型,不能存在不同档尾进行调用。

6.3.单一钱包协定

SimplePlay平台使用HTTP POST协定与第三方系统进行沟通。所有参数将会加密并以纯文本送出。

下面是一个加密前的参数范例,这个字串将使用下方的加密方式,放在POST的内容发到SimplePlay平台。

6.3.1.加密流程

我们使用DES CBC加密方案。下方展示出PHP及ASP.Net的加密及解密代码。

ASP.Net版本

PHP版本

6.3.2.POST

字串加密后,再把字串进行 urlencode,再以纯文本放到POST的内容再发送。

第三方系统需要以提供的解密钥匙把字串进行 urldecode解密还完为参数字串以作处理。

6.3.3.反回讯息

第三方系统需要以XML格式,返回讯息给我们。

6.4.GetUserBalance

我们会发送此要求来获得一个会员的结余。

输入参数
名称描述类型和长度限制必填?
username用户名String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y

例子:

返回参数
名称描述类型和长度限制必填?
username用户名String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y
amountDecimal浮点数格式。最多2位浮点数DecimalY
error错误代码IntY

6.5.帐户点数出入转移

SimplePlay 游戏平台向合作伙伴系统提出不同的帐户点数转移请求,以修改玩家的点数余额,当玩家投注時提取点数,当玩家获得胜利存入点数。

6.5.1.PlaceBet

当会员在一个游戏内进行投注, SimplePlay 平台会发送这个请求到第三方系统。这个请求必须在3秒内回覆,否则我方判定为逾时而取消该项投注,同时也会发送 PlaceBetCancel 到第三方系统,以便第三方系统进行点数回复处理。

输入参数
名称描述类型和长度限制必填?
username用户名String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y
amount投注金额。最多2位浮点数DecimalY
txnid独一的点数转移编号String (16)Y
timestamp时间标记 yyyy-MM-dd HH:mm:ss.fff (時區 GMT +8)
例如: 2020-03-25 12:34:56.123
DateTimeY
ip用户的IPStringY
gametype游戏类型
slot - 老虎机游戏
multiplayer - 捕鱼游戏
StringY
platform0 - 桌面版
1 - 手机版
ByteY
gamecodegamecode代表进行中的游戏代码StringY
gameid游戏局号StringY
JackpotContribution累积大奖供款。最多9位浮点数DecimalY
返回参数
名称描述类型和长度限制必填?
username用户名String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y
amount 会员在投注后的结余。最多2位浮点数DecimalY
error错误代码IntY

6.5.2.PlayerWin

当会员有投注过的一局游戏完结及派彩,而会员有净赢额,PlayerWin就会发到第三方系统。第三方系统需要修改会员帐户结余。此请求会不停发出,直到被处理及正确回覆为止。

输入参数
名称描述类型和长度限制 必填?
username用户名 String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y
amount需要返回给会员的赢额。最多2位浮点数DecimalY
txnid独一的点数转移编号String (16)Y
timestamp时间标记 yyyy-MM-dd HH:mm:ss.fff (時區 GMT +8)
例如: 2020-03-25 12:34:56.123
DateTimeY
gametype游戏类型
slot - 老虎机游戏
multiplayer - 捕鱼游戏
StringY
gamecodegamecode代表进行中的游戏代码StringN
Payouttime派彩时间DateTimeY
gameid游戏局号StringY
JackpotWin累积大奖结果:
true-嬴取累积大奖
false-没有嬴取累积大奖
BooleanY
返回参数
名称描述类型和长度限制必填?
username用户名String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y
amount 会员在投注后的结余。最多2位浮点数DecimalY
error错误代码IntY

6.5.3.PlayerLost

当会员有投注过的一局游戏完结及派彩,而会员没有赢额,PlayerLost就会发到第三方系统。第三方系统原则上不需要修改会员帐户结余。此请求会不停发出,直到被处理及正确回覆为止。

输入参数
名称 描述类型和长度限制必填?
username用户名 String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (3)Y
txnid独一的点数转移编号String (16)Y
timestamp时间标记 yyyy-MM-dd HH:mm:ss.fff (時區 GMT +8)
例如: 2020-03-25 12:34:56.123
DateTimeY
gametype游戏类型
slot - 老虎机游戏
multiplayer - 捕鱼游戏
StringY
gamecodegamecode代表进行中的游戏代码StringY
Payouttime派彩时间 DateTimeY
gameid游戏局号StringY
返回参数
名称描述类型和长度限制必填?
username用户名String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y
amount 会员在投注后的结余。最多2位浮点数DecimalY
error错误代码IntY

6.5.4.PlaceBetCancel

当发出了的PlaceBet请求逾时或者第三方系统返回错误讯息,我方就会发出PlaceBetCancel请求。 SimplePlay 平台会视此次投注失败及通知在线会员相关讯息。第三方系统必须回应此请求及只处理一次。如果收到此请求时,没有需要返回点数给会员,即之前没有成功处理PlaceBet,即管如此,第三方平台也必须回覆一个没有错误的返回参数,否则我方平台会不停请求,直到成功为止。

输入参数
名称描述类型和长度限制必填?
username用户名String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y
amount需要返回给会员的赢额。最多2位浮点数DecimalY
txnid独一的点数转移编号String (16)Y
timestamp时间标记 yyyy-MM-dd HH:mm:ss.fff (時區 GMT +8)
例如: 2020-03-25 12:34:56.123
DateTimeY
gametype游戏类型
slot - 老虎机游戏
multiplayer - 捕鱼游戏
StringY
gamecodegamecode代表进行中的游戏代码StringY
gameid游戏局号StringY
txn_reverse_id这个编号是对应之前PlaceBet请求时的 txnid。第三方系统需要检查这个txn_reverse_id是否有处理过,而正确地返回点数给会员。String (16)Y
返回参数
名称描述类型和长度限制必填?
username用户名String (28)Y
currency标准ISO 3字元货币单位例如: USD/EUR
例外: mXBT
String (16)Y
amount 会员在投注后的结余。最多2位浮点数DecimalY
error错误代码IntY

6.6.特别注意事项

一般来说,PlaceBetPlayerWin/PlayerLost 在老虎机游戏及捕鱼游戏中,以一对的方式出现。但是请留意, 捕鱼游戏会有例外。

会员在一局鱼乐无穷中得到了免费子弹,在没有完全使用下退出游戏,当他再进入鱼乐无穷,如果未有转换金币而发射了免费子弹,就这样退出游戏,我方会发出 PlayerWin PlayerLost。这样就会发生,在没有 PlaceBet 情况下,收到 PlayerWin PlayerLost 的情况。如果第三方有核对 PlayerWin/PlayerLostGameID 能否配上 PlaceBet 才处理的话,就可能导致 PlayerWin/PlayerLost 失败,会员金额无法归还。

第三方必须理解此一特别情况,而对PlayerWin/PlayerLost 作出适当的处理。

6.7.错误代码

第三方系统需要以下方的代码返回错误讯息给我们:

ID描述
0成功
1000会员帐号不存在
1001货币代码不正确
1002金额不正确
1003会员帐号已被锁
1004不足够点数
1005一般错误
1006解密错误
1007登入时段过期,需要重新登入
9999系统错误

7.错误讯息代码

常见错误消息代码

ID描述
100用户名错误
101账户锁定
102密钥错误
104服务器不可用
105客户端错误
106服务器忙碌中, 请稍后再次尝试
107用户名为空
108用户名 长度/格式错误
110用户离线
111查询时间超过限制
112API 近期已调用
113用户名已存在
114币种不存在
116 用户名不存在
120账户额必须大于 0
121没有足够的信用或借记点及下注
122订单ID已经存在
125踢出用户失败
127订单ID格式错误
128解密错误
129系统正在维护
130用户账户锁定(无效)
132核对不正确
133建立帐户失败
134游戏代码不存在
135游戏没有开放
136没有足够额度投注
142输入参数错误
144查询类别错误
145输入浮点数超过2位数错误
146API 调用被禁止
148最大馀额不等於 0 或少於帐户结馀
149输入数值低於下限
150功能已被废弃
151重复登录
152鱼乐无穷游戏ID不存在
153投注编号不存在

8.登录流程

8.1.游戏大厅

使用从LoginRequest或LoginRequestForFun返回的GameURL启动游戏大厅 。以下是使用的所有参数。您可以自由添加额外的参数来满足您的需求。

参数描述类型预置?
token登录令牌StringY
name回传的 DisplayName 或其他需要的名称StringY
mobile移动设备模式Bool (true/false)Y
lobbycode我们提供给你的 lobbycode. 用来显示贵司标志。StringY
returnurl当客户端终止时,页面可以回到指定的URL (选填)StringN
webview在运营商的原生应用程序Webview中启动SimplePlay游戏时使用Bool (1/0)N

8.2.老虎机

使用从LoginRequest或LoginRequestForFun返回的GameURL直接启动老虎机游戏。以下是使用的所有参数。您可以自由添加额外的参数来满足您的需求。

参数描述类型预置?
token登录令牌StringY
name回传的 DisplayName 或其他需要的名称StringY
mobile移动设备模式Bool (true/false)Y
lobbycode我们提供给你的 lobbycode. 用来显示贵司标志。StringY
returnurl当客户端终止时,页面可以回到指定的URL (选填)StringN
webview在运营商的原生应用程序Webview中启动SimplePlay游戏时使用Bool (1/0)N
skipintro略过老虎机开始视频 (选填)
1 - 略过
Bool (1/0)N

8.3.捕鱼游戏

返回的GameURL已构建为直接使用,但是,您可以追加与老虎机相同的returnurl = https://www.yourdomain.com/somewhere。此外,您可以通过添加un = your_username来控制捕鱼游戏客户端中显示的用户名,它将覆盖我们系统中的实际用户名。

参数描述类型
returnurl当客户端终止时,页面可以回到指定的URL (选填)String
un取代系统原来的用户名称 (选填)String

9.游戏代码对应表

游戏游戏代码游戏名稱
老虎机游戏有关详细信息,请参阅此此页-
捕鱼游戏EG-FISHING-001鱼乐无穷
捕鱼游戏EG-FISHING-002深海历险

10.货币类型

下表列出了SimplePlay平台支持的货币类型。请注在API调用时需指定货币类型后该货币类型才能生效。如有疑问,可咨询我们的客服人员。

货币简称货币描述
AED阿联酋迪拉姆
ARS阿根廷披索
AUD澳元
BDT孟加拉塔卡
BND文莱元
BRL巴西雷亚尔
CAD加拿大元
CHF瑞士法郎
CLP智利比索
DKK丹麦克朗
EUR欧元
GBP英镑
GHS迦納塞地
HUF匈牙利福林
IDR*印尼盾
ILS以色列新谢克尔
INR印度卢比
JPY日元
KHR*柬埔寨瑞尔
KZT哈萨克腾格
LAK*寮币
LKR斯里兰卡卢比
MMK*缅元
mXBT比特币
MYR马来西亚林吉特
NOK挪威克朗
NZD新西兰元
PEN秘鲁新索尔
PHP菲律宾披索
PLN波兰兹罗提
RUB俄罗斯卢布
SEK瑞典克朗
SGD新加坡元
THB泰铢
TND突尼西亚第纳尔
TRY土耳其里拉
TWD新台币
UAH乌克兰格里夫纳
USD美元
USDT泰达币
VND*越南盾
ZAR南非兰德

有 * 的货币,在我方系统内是真实货币的千分之一为单位

Suggest Edit