H5游戏SDK对接
当前版本:332
更新时间:2022-07-15
更新内容:1、界面调整优化 2、修复相关bug
SDK下载

1用途

本文档为Html5游戏登录和充值回调技术文档(请仔细阅读注意事项和注释

请在游戏首页加载我方js 文件

文件路径:http://api2.3733.com/static/js/sdk/3733sdk.js +时间戳

2签名机制

签名使用MD5方式

格式为 MD5(签名数组+app_key),使用参数sign传递,app_key由平台方提供。

此签名机制用于接口调用,充值回调的签名机制请看《充值回调接口》

1. 签名方法

在请求参数列表中,除去sign参数外,其他需要使用到的参数皆是要签名的参数。

注意: 所有参数必须按键名升序排序,非必填字段可传空值,请参见下面例子。

2. 示例

PHP示例
//签名方法
function signData($data, $app_key)
{
 ksort($data);
 foreach ($data as $k => $v) {
  &t $tmp[] = $k . '=' . $v;
 }
 $str = implode('&', $tmp) .'&app_key='. $app_key;
 return md5($str);
}

3登录跳转游戏

登录具体逻辑:

运营方按照CP提供的login_url携带下方登录接口参数登录传参,CP验证签名成功后,如果mem_id 值为空,提示玩家返回游戏盒子重新登录,如果mem_id 值不为空,直接进入游戏。

登录游戏时携带的参数

参数名 参数说明
ext 透传信息,在支付跳转时原样返回
mem_id 用户唯一ID
app_id 游戏编号----运营方为游戏分配的唯一编号
sign 按照上方签名机制进行签名

例子:
http://login_url?mem_id=xxxxx&app_id=xxxx&ext=xxxxxx&sign=xxxxx

注:login_url由CP方提供(地址里面有参数的话请不要带有问号)
app_id和app_key由运营方分配

4充值调起接口

CP方 需要根据 ‘充值跳转接口’ 相关规则加密并向运营方传递充值参数。同步返回是否成功提示。(最终结果以异步回调通知为准)

支付sdk调起:

充值调起接口参数

参数名 参数说明
amount 金额,单位为元
ext 原样返回登陆时透传的信息
app_id 游戏编号----运营方为游戏分配的唯一编号
product_name 商品名称
product_desc 商品描述
attach cp方扩展参数,充值回调时原样返回,建议为英文与数字,用于校验此订单合法性
mem_id 运营方用户唯一ID
server 角色所在服务器ID
role_id 角色ID
sign 按照上方签名机制进行签名

xgGame.h5paySdk(jsondata,function(data){console.log(data);});
jsondata格式:
{
"amount":100,
"ext":"***",
"app_id":"***",
"product_name":"***",
"product_desc":"***",
"attach":"***",
"mem_id":"1",
"server":1,
"role_id":"1",
"sign":"***",
}

5充值异步回调通知

运营方将以约定的格式将数据以HTTP POST方式提交至CP方指定的接口。

数据格式说明

参数名 参数说明
order_id 平台订单号
mem_id 用户唯一ID
app_id 游戏编号----运营方为游戏分配的唯一编号
money 充值金额(单位元)
order_status 1未支付 2成功支付 3支付失败
paytime 时间戳 Unix timestamp
attach cp扩展参数,建议为英文与数字,用于校验此订单合法性
sign 按照上方签名机制进行签名 (role_id不参与签名)
role_id 角色ID

完整签名示例:

sign = MD5(order_id=123123&mem_id=5157062&app_id=66666&money=1&order_status=2&paytime=1560845835&attach=xxxxxx&app_key=***********)

注:app_id和app_key由同步游戏分配

注:充值回调的签名机制无需将参数按键名升序排序。

注:callback_url由CP方提供

6回调应答

CP方对收到的数据校验并处理,根据处理结果直接返回对应的响应内容

响应内容 响应内容说明
SUCCESS 成功,表示游戏服务器成功接收了该次充值结果通知,校验签名,订单,金额等都没问题
FAILURE 失败,表示游戏服务器无法接收或识别该次充值结果通知,如:签名检验不正确、游戏服务器接收失败

注意:

1、运营方只对充值成功的订单进行通知。

2、运营方可能对某个订单重复通知,请勿重复处理;对已经成功处理的订单返回SUCCESS避免重复通知。

3、CP在接收到运营方的通知后,在验证签名的基础上还需要对amount参数进行确认,支付金额是否对应订单的实际金额,防止以较少金额购买游戏货币。

4、attach扩展参数不能带有& ” ’ % 空格以及其他会被url转义的字符。

7登出(角色顶号可用)

当玩家在游戏中被顶号时,可以调用该接口关闭玩家当前页面

登录游戏时携带的参数

参数 参数说明

例子:

xgGame.loginOutSdk();

8提交角色信息(必须接入)

提交玩家在游戏内的角色信息,提交时机:在玩家创建角色或角色等级发生变化或更改角色名时调用

参数说明:

参数名 类型 参数说明
roleId String 角色id
roleName String 角色名
serverId String 区服id
serverName String 区服名
roleLevel String 角色等级

例子:

xgGame.getUserInfoSdk(data);
jsondata格式:
{
"roleId":"***",
"roleName":"***",
"serverId":"***",
"serverName":"***",
"roleLevel":"***",
}