API接口文档说明

1、用户登录

(1)用户接口调用


//功能: 玩家进入游戏
//访问方式:GET

// 请求参数:
// - 用户ID: uid (urlencode之后的值)
// - 平台ID: platform(开平:wan)
// - 游戏名: gkey(创建游戏时自动生成)
// - 区服ID: skey(整数1、2、3...无特殊说明都依此例)
// - 时间戳: time
// - 防沉迷: is_adult (1为18岁以上 ,2为未满18岁,0为未填写)
// - 扩展信息: exts (格式 base64后的JSON :base64_encode({'DWT':1234,'uid':1231}))
// - 登陆类型:type(登陆类型,浏览器登陆:web,微端登陆:pc)
// - 签名 : sign
    签名规则为: md5($uid.$platForm.$gkey.$skey.$time.$is_adult.$exts.'#'.$lkey) (lkey为登陆密钥,注:uid为url  decode之后的值,“.”为连接符)

http://domain/[login]?uid=$uid&platform=$platForm&gkey=$gkey&skey=$skey&time=$time&is_adult=$is_adult&exts= $exts&type=$type&sign=$sign //[]中的接口名称,由游戏开发方决定,并告知我们
exts字段说明:
• 该字段如果为空,请忽略
• 如果字段不为空,请先base64_decode该字符串,然后 json_decode 获得exts里所有数据
• 数据使用请参考每个接口exts字段说明

exts字段 说明 处理
dwt 需要将此字段和用户id绑定 并在获取玩家角色形象返回



接口异常:

请跳转到游戏官网。


2、判断玩家是否有角色

(1)角色接口调用


//功能: 玩家进入游戏
//访问方式:GET

// 请求参数:
// - 用户ID: uid (urlencode之后的值)
// - 平台ID: platform(开平:wan)
// - 游戏名: gkey(创建游戏时自动生成)
// - 区服ID: skey(整数1、2、3...无特殊说明都依此例)
// - 时间戳: time
// - 签名 : sign
    签名: md5($uid.$platform.$gkey.$skey.$time.'#'.$lkey)($lkey为登陆密钥,注:uid为urldecode之后的值,“.”为连接符)
http://domain/[checkuser]?uid=$uid&platform=$flatform&gkey=$gkey&skey=$skey&time=$time&sign=$sign //[]中的接口名称,由游戏开发方决定,并告知我们

(2)角色接口返回

数据格式: JSON

errno : 0/-1/-2

errmsg : 查询成功/未创建角色/参数错误

data: [
{
uid:玩家平台账号ID
nickname:角色名称,
sex:性别,(m:男,f:女)
last_login:最后登陆时间,
loginlong:在线时长(单位秒),
group:阵营或帮派,
occupation :职业,
level:角色等级,
is_valid:角色状态(玩家该角色是否被封禁 0/1),
exp:经验值 (整数),
createtime:创建时间 (UNIX时间戳)
},
......
]

注:
①data字段返回值必须为数组;
②data字段返回值uid、nickname 和 level不能为空 ;

3、兑换游戏币接口

(1)游戏币接口调用

//功能:发放游戏币
//访问方式:POST

// 必要参数:
// - 用户ID: uid (urlencode之后的值)
// - 角色ID: role_id(不需要时可为空)
// - 角色名称: role_name(充值的角色名称,base64_encode之后的值,不需要时可为空)
// - 平台ID: platform
// - 游戏名: gkey
// - 区服ID: skey
// - 订单号: order_id
// - 游戏币数量: coins
// - 人民币数量: moneys(单位:分)
// - 时间戳: time
// - 签名: sign

签名规则为: md5($uid.$platform.$gkey.$skey.$time.$order_id.$coins.$moneys'#'.$pkey) ($pkey为充值密钥,注:uid为urldecode之后的值)
http://domain/[exchange]?gkey=$gkey&skey=$skey&platform=$platform&order_id=xxx&uid=xxx&coins=$coins&moneys=$moneys &time=$time&sign=$sign&role_name=$role_name&role_id=$role_id //[]中的接口名称,由游戏开发方决定,并告知我们

(2)游戏币接口返回

返回结果
数据格式: JSON
errno : 0/1/-1/-2/-3/-4
errmsg :充值成功/订单重复/参数不全/签名错误/用户不存在/请求超时
data:{
order_id:订单号,
uid:用户id,
role_id:游戏角色ID,
role_name:角色名称,
platfrom:平台ID,
gkey:游戏名,
skey:区服,
coins:游戏币数量.
moneys:充值数量
time:时间戳(平台交易时间戳)
}

注:
①data字段时的数据为请求发起请求时接收到的字段值;
②补单请求的时间为订单生成的时间,请放开时间过期限制;

4、Toolbar兼容chrome内核(注:纯微端游戏可以忽略)

为满足360游戏中心的个性化需求,游戏方的页面需要引入一个JS,引入方法如下:
从性能优化的角度,以保证不会阻塞页面渲染,有两种建议的接入方式:
Icon

注意,不同的游戏gkey取值不一样,下面以《御龙OL》为例,gkey为2866256038390000。

方案1: 在window.onload事件中动态引入该script标签,示例的JS代码如下:

                function loadjs(url)
                {
                var t = document.createElement('script');
                t.type = 'text/javascript';
                t.src = url;
                document.getElementsByTagName('head')[0].appendChild(t);
                }
                window.onload = function() {
                loadjs("http://ext.1360.com/pumper.js?c=game&gkey=2866256038390000");
                }
            

方案2: 在body尾部引入该

附1、参数描述

本文档为游戏接入的标准文档,各参数的描述如下:

变量 简称 描述
platform 平台名称 如youxi、wan等(开平:wan)
gkey 代表游戏名 16位 数字字符串(注册开平时分配)
skey 区服ID 可为:1,2,3……n(整型)
uid 用户ID 此字段为用户标识,与平台名称联合,做为用户的唯一标识,如testuser,12345等
is_adult 防沉迷信息 1为18岁以上,2为未满18,0为未填写
time unix时间戳 int型时间戳
lkey 登录密钥 登录密钥
pkey 充值密钥 充值密钥
order_id 订单号 订单号,与平台名联合,做为订单的唯一标识
coins 游戏币数量 int型,为发放游戏币的数量
exts 扩展信息 该字段会存放扩展的数据,按照扩展字段要求处理,如果有值,请把数值加入md5原始加密串进行加密

附2、充值链接

游戏内充值地址:
http://pay.wan.360.cn/order.html?gkey=$gkey&skey=$skey&qid=$qid ,qid为登录时传递的uid,skey为区服ID,例如1,2,3的整数。qid与skey都为变量,根据相应的信息进行传递。


平台上的游戏的充值地址:
http://pay.wan.360.cn/order.html?gkey=$gkey

附3、常见问题

1. 充值金额单位(分);
2. 充值对账标准应该是看厂商和商务这边是如何定的(元宝或rmb);
3. 充值失败,返回“超时”或 除“成功”以外的标识;
4. order_id和time都是平台参数,原样返回;