Skip to content

H5端接入指引

SDK说明

1.接入须知

  • SDK通过iFrame的形式加载游戏页面;

  • SDK通过iFrame加载游戏页面时会给iFrame的src附带GET参数,游戏可通过获取GET参数拿到SDK提供的信息,GET参数中包含了用户的UID信息,以及是否为游客模式;

  • 游戏可以根据自身逻辑选择是否允许游客玩家游戏,若不允许可主动调用登录接口;

  • 每当玩家切换帐号时SDK会重新加载iframe以更新传递给游戏的GET参数;

  • SDK通过GET参数形式传递账号和签名信息给游戏,所以游戏无需再接入服务端验证用户信息接口

2.支付流程

  1. 游戏通过SDK提供的JSAPI调用支付接口,SDK会弹出支付页面;

  2. 当玩家支付完成后,SDK服务器会向游戏服务器发送发货通知;

  3. 游戏处理发货通知向玩家发送道具完成购买;

接入流程

1.导入SDK

引入JSSDK类库

html
<script type="text/javascript" src="https://api.x6xy.com/static/lib/libSDK.js"></script>

2.初始化SDK(必接)

调用SDK提供的H5SDK.init方法,传入参数productCode完成SDK初始化。

javascript
// 参数productCode为必填,由对接的运营提供
H5SDK.init('productCode')

3.登录

拉起用户登录弹窗,需要在初始化成功之后调用,否则调用无效。游戏可以主动调用此接口显示一个用户登录弹窗。

H5SDK.login提供一个回调函数,其中参数loginNotify中将返回玩家登录的信息,失败时为失败原因,成功后登录后会刷新页面重新加载游戏。

javascript
H5SDK.login(function(loginNotify){
    console.log(loginNotify);
})

通知示例:

json
{status: false, data: "", message: "账号或密码错误"}

4.处理用户登录

游戏链接被加载时SDK会向游戏链接添加GET参数

参数说明
uid玩家uid
username玩家用户名
signMD5签名,游戏需验证签名是否正确,不正确拒绝登录
isLogin是否游客,0游戏,1正式帐号
time时间戳
marketTag投放标示

本地计算sign:md5(uid+’&’ + username + ‘&’ + time + ’&‘ + callbackkey)

玩家唯一标识uid,游戏应获取uid匹配玩家角色信息,使用uid前需进行签名验证验证。若本地签名与GET参数的sign一致,则签名通过,不一致则拒绝玩家登录游戏。

注:callbackkey由SDK后台分配,可通过运营获取。

5.退出登录

当玩家退出登录时,SDK会重新加载游戏链接,更新链接上的GET参数。

javascript
H5SDK.logOut()

6.充值

回调函数参数payStatusObject对象中status为true时为支付成功。注客户端的通知应仅仅作为UI展示,发货需以最终的服务器通知为准,且发送金额需为服务器通知中的告知的金额。(服务器通知接口参见《服务器对接文档》)

javascript
var orderInfo = new Object();
orderInfo.productCode = 'productCode'
orderInfo.uid = 'uid'
orderInfo.userRoleId = 'roleId1'
orderInfo.userRoleName = '沙巴克杀手'
orderInfo.userServer = '沙巴克一区'
orderInfo.userLevel = 1
orderInfo.cpOrderNo = 'cpOrderNo000001'
orderInfo.amount = '0.01'
orderInfo.subject = '麻痹戒指'
orderInfo.desc = '麻痹戒指999个'
orderInfo.callbackUrl = ''
orderInfo.extrasParams = ''
orderInfo.goodsId = ''
orderInfo.count = 60
orderInfo.quantifier = '个'
var orderInfoJson = JSON.stringify(orderInfo)
H5SDK.pay(orderInfoJson,function(payStatusObject){
   console.log('GameDemo:下单通知' + JSON.stringify(payStatusObject))
})
字段类型说明
productCode必传SDK后台分配的参数,由对接的运营提供
uid必传用户uid
username选传用户username
userRoleId必传游戏角色ID
userRoleName必传游戏角色名称
userServer必传游戏角色所在区服
userLevel必传游戏角色等级
cpOrderNo必传游戏内的订单,服务器通知中会回传
goodsId必传商品ID
amount必传购买金额(元),如:648
count必传购买商品个数
quantifier必传购买商品单位,如:个
subject必传商品名称
desc选传商品描述
callbackUrl选传服务器通知地址,订单支付成功后SDK向游戏通知发货的地址。可在SDK后台配置,创建支付订单时传了通知地址,则以支付传的为最终通知地址
extrasParams选传透传参数,服务器通知中原样回传。扩展字段请勿传特殊符号(如单引号,双引号等),如果无法避免建议先进行base64编码后再传

注:选传字段的值可以为空字符串,但是字段必须传

7.角色上报

回调函数参数response对象中status为true时为上报角色成功。

javascript
let roleInfo = new Object()
roleInfo.serverName = '沙巴克一区'
roleInfo.userRoleName = '沙巴克杀手'
roleInfo.userRoleId = 'roleId1'
roleInfo.userRoleBalance = 1000
roleInfo.vipLevel = 1
roleInfo.userRoleLevel = 1
roleInfo.partyName = '行会名称'
roleInfo.uid = 'uid'
let roleInfoJson = JSON.stringify(roleInfo)
H5SDK.uploadGameRoleInfo(roleInfoJson,function(response){
    if(response.status){
      // ...
    } else {
      // ...
    }
})
字段类型说明
uid必传用户uid
serverName选传区服名称
userRoleName必传游戏角色
userRoleBalance选传角色游戏内货币余额
userRoleId必传角色ID
userRoleLevel必传角色等级
vipLevel选传角色VIP等级
partyName选传公会/社团名称

注:选传字段的值可以为空字符串,但是字段必须传

坚果互娱(天津)网络科技有限公司