更新日期:2024-12-03QuickGameSDK服务器接入文档
1.本文档的阅读对象为接入并使用SDK用户和支付系统的游戏服务器开发者。
2.通信时SDK均采用UTF8编码。
3.双发通信时,若有sign字段则一定要验证签名。
本接口针对iOS和Android平台,H5游戏无需调用此接口。
1.1 接口目的
游戏客户端从SDK登录回调中获取到uid后,为防止用户篡改客户端而伪造用户uid标示从而登录他人账号,游戏客户端应将此信息传入给游戏服务器。游戏服务器调用此接口向SDK验证uid的真实性。若uid通过验证则允许此用户登录,若无法通过验证应拒绝此用户的登录授权。
1.2 接口地址
http://quickgame.sdk.quicksdk.net/webapi/checkUserInfo
1.3 请求方式
GET/POST
1.4 参数列表
参数 | 必要性 | 说明 |
uid | 必传 |
从客户端登录回调中获取的uid |
token | 必传 |
从客户端登录回调中获取的token,请注意token的长度不要被截断 |
1.5 返回字段
接口会返回JSON格式字符串,如:
例1 {"status":false,"message":"tokenUidError"}
例2 {"status":true,"message":""}
参数 | 类型 | 必要性 | 说明 |
status |
bool |
必有 |
接口验证状态,若通过验证为true,否则为false |
message |
string |
必有 |
Status为false时,message有值,为错误提示语 |
data |
object |
必有 |
status为true时才有data字段,为用户信息,对象包含如下字段: uid:用户uidisGuest:是否为游客账号。1是;0否 age:用户年龄,如果用户已实名认证返回认证的年龄,未实名认证返回0
|
http://quickgame.sdk.quicksdk.net/webapi/checkUserInfo?token=@171@174@188@127@182@163@148@179@166@168@132@179@165@222@169@116@109@166@96@212@152@156@116@121@106@139@170@154@203@134@124@118@108@164@205@126@173@151@172@169@169@140@158@215@138@153@164@136@160@162@154@197@114@212@159@143@126@125@154@179@168@151@135@155@121@148@215@146@181@100@158@219@161@112@106@184@108@189@121@129@120@158@141@186@129@177@169@140@105@136@128@176@205@124@124@166@163@179@213@151@175@124@185@140@155@124@171@160&uid=523
2.1 接口目的
玩家在完成充值后,SDK会按照此接口协议向游戏提供的发货地址POST数据(简称为发送通知),游戏在收到SDK POST的数据后应验证相关信息并向玩家发送道具。
a)游戏应按照后面2.4.2节中的算法验证签名数据,确定请求是否合法。
b)游戏发货的金额应当以通知中的金额为准发放道具。
c)游戏应判断是否重复发放道具,若已发放则不能再次发放。
d)处理成功后返回SUCCESS这7个纯字符串(注意不要加其他字符)SDK将不再通知,否则SDK将在一段内持续通知。
2.2 接口地址
发放道具地址由游戏提供,SDK会主动向此地址发起POST请求。
2.3 请求方式
POST
2.4 POST参数列表
SDK会向游戏服务器POST3个参数:nt_data 和 sign 和 md5Sign。
参数皆为编码后的密文,使用从后台获取的callbackkey对密文进行解码。
nt_data解码后为一个xml字符串。
例如
50848343 GG366822889 13420170114150053861611313 0720170114150059110833 2017-01-14 15:01:17 0.01 0 13420170114150053861611313
各字段含义如下:
参数 | 必要性 | 说明 |
uid |
必有 |
购买道具的用户uid |
login_name |
必有 |
购买道具的用户username |
out_order_no |
可为空 |
游戏下单时传递的游戏订单号,原样返回 |
order_no |
必有 |
SDK唯一订单号 |
pay_time |
必有 |
用户支付时间,如2017-02-06 14:22:32 |
amount |
必有 |
用户支付金额,单位元,游戏最终发放道具金额应以此为准 |
extras_params |
必有 |
客户端下单时透传参数 原样返回 |
2.4.1
CP应判断是否已发送道具。
2.4.2
CP应判断通过签名是否一致。
判断方法为CP自行计算本地签名localSign = md5(nt_data + sign + md5Key)
对比本地计算结果与通知中的md5Sign是否一致.不一致应返回失败。
注:直接对nt_data、sign、md5Key的原文进行拼接,无需加拼接符,无需对nt_data解码。
2.4.3
CP其他判断逻辑。
2.4.4
处理完成后:
希望SDK继续通知则返回任何非SUCCESS的字符。
处理完毕,订单结束则返回SUCCESS,SDK不会再通知。
3.1 接口目的
在公众号/网页充值平台,玩家登录账号选择游戏角色列表。玩家选择角色后向该角色充值
3.2 接口地址
地址由游戏提供,SDK会主动向此地址发起POST请求
3.3 请求方式
POST
3.4 POST参数列表
参数
必要性
说明
productCode
必有
SDK产品ProductCode
frType
非必有
获取角色方式,取枚举值,如果没有此字段默认以第1种方式获取角色列表
1. 通过SDK账号UID获取,默认为此方式
2. 通过角色ID获取
roleId
非必有
用户角色ID,如果frType为2时,角色ID字段必有。游戏此时应该根据角色ID查询当前游戏的角色信息
uid
非必有
用户SDK账号uid,如果frType为1时,uid字段必有。游戏此时应该根据SDK账号ID查询当前游戏的所有角色列表
username
非必有
用户SDK账号名,如果frType为1时,username字段必有。游戏此时应该根据SDK账号ID查询当前游戏的所有角色列表
sign
必有
签名值,游戏应根据签名约定,本地计算后与此值进行比对
3.5 返回字段说明
游戏地址在接收到SDK请求之后返回玩家的角色信息列表,数据格式为json,返回字段如下:
参数
必要性
说明
code
必有
200:请求成功
其余值均为失败
data
必有
玩家角色列表集合,每个子集包含如下字段:
serverId:区服ID
serverName:区服名
roleId:角色ID
roleName:角色名
roleLevel:角色等级
sdkUid:当获取方式frType=2时,游戏应必须返回SDK的uid,否则可能会无法调起支付
提示:由于公众号网页支付的订单没有经过游戏下单,所以通知发货接口无法获取游戏的具体订单号。此时游戏给玩家发货时可获取SDK通知回调的extras_params参数的信息给具体玩家角色发放道具。
extras_params返回的格式为“区服ID|@|角色ID|@|商品ID
3.6 签名算法
通信时,SDK会在请求中附带sign字段。
游戏将收到的POST参数移除sign字段后,按首字母升序排序。
将排序后的所有键值对按 key1=val1&key2=val2&key3=val3& 格式进行拼接。
在第2步拼接的字符后拼接SDK后台产品的callbackKey,则此时格式为:
key1=val1&key2=val2&key3=val3&callbackKey
将第3步处理的字符串进行md5编码,得到32位md5值。
将第4步获取的md5值与第1步中发起方传递的sign值进行对比,一致则通过。
李先生:13880511661
QQ:48157910
赵先生:15390049857
QQ:1077535763
孙女士:13551010407
QQ:1799614139
QQ群:698731538