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":"***",
}