溪谷H5发行CP接入文档

游戏首页即在开放平台填写的登录通知地址页面加载 溪谷h5发行SDK

初始化操作

在游戏调用接口前需要初始化 溪谷h5发行 SDK

加载js-sdk

在游戏页面加载SDK

· 请在游戏页面加载后,尽早的加载SDK,以得到完整的SDK功能。

示例


    


使用js-sdk

初始化方法

加载类文件是一个异步过程,请先执行ready函数,初始化成功后再使用其它函数

示例

    Var init = xgGame.ready();


签名机制

签名使用MD5方式

格式为 MD5(签名数组+game_key),使用参数sign传递game_key在开放平台游戏详情中可以查看

1 签名方法

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

注意 所有参数必须按键名升序排序,非必填字段可传空值,请参见下面例子中的ksort($data)

2 示例

PHP示例

//签名方法

function signData($data, $game_key)

{

    ksort($data);

    foreach ($data as $k => $v) {

        $tmp[] = $k . '=' . $v;

    }

    $str = implode('&', $tmp) . $game_key;

    return md5($str);

}



认证登录

认证当前登录的数据

步骤

1. 开放平台通过iframe打开游戏链接,并把相关信息做为参数附加在URL中,具体详见参数说明

2. 将得到的数据对比sign,进行签名认证,完成登录

示例:

iframe src="http://issue.cn/index.php/Index/h5open?channelExt=***&channelId=9&gameAppid=***&nonce=EgsKDS&timeStamp=1501740115&userAccount=newh5account&userHeadicon=userHeadicon&userId=5&userPhone=***&userSex=1&sign=d1947bf0774cd6f270a35d93915ebfe4

">

iframe

参数说明:

· channelExt 这里是开放平台透传的数据,支付时请原样返回option

· channelId 登录的渠道id required

· gameAppid 游戏appid,游戏详情中可以获取required

· timeStamp 时间戳,1970-1-1至今秒数 (required

· nonce 随机字符串(required

· userId: 开放平台用户idrequired)

· userAccount: 开放平台用户账号option)

· userHeadicon: 开放平台用户头像option)

· userSex: 开放平台用户性别option)

· userPhone: 开放平台用户手机号option)

· sign: 签名(required

上述参数按照文档中的签名机制用game_key进行签名

示例:

请求URL http://issue.cn/index.php/Index/h5open?channelExt=***&channelId=9&gameAppid=***&nonce=EgsKDS&timeStamp=1501740115&userAccount=newh5account&userHeadicon=userHeadicon&userId=5&userPhone=***&userSex=1&sign=d1947bf0774cd6f270a35d93915ebfe4


支付

购买游戏内的道具或金币。

步聚:

1. 由游戏服务器生成购买订单,并调用xgGame.paysdk方法,发起订单

2. 用户通过开放平台或渠道支付页面完成付费

3. 开放平台回调游戏提供的notify_url,通知游戏付费成功

发起购买订单

功能说明:

调用开放平台支付接口购买游戏内道具

paysdk接口(JS接口)

xgGame.paysdk(paydata)

参数说明:

· paydata  支付信息json格式数据

支付信息paydata参数说明(游戏方服务端生成):

· gameAppid  这里是开放平台提供的gameAppidrequired

· openUserid  开放平台提供的用户idrequired

· totalFee  道具支付金额(单位),正整数required

· gameOrderno  游戏生成的订单号(required,唯一)

· propsName 游戏道具名称(required

· channelExt 登录时的透传信息required

· timeStamp 时间戳,1970-1-1至今秒数 (required

· nonce  随机字符串(required

· gameArea 用户所在的游戏区(option

· gameGroup: 用户所在的游戏服(option

· rolename: 用户的角色option

· sign : 签名(required

注意 上面参数带required的,都是必填的参数。

上述参数准备完成后,按照文档中的签名机制用game_key进行签名

示例:

PHP完成数据签名组装, 输出为jsjson对象:

;

前台调用:

 



用户支付操作

注意:开放平台会通过postmessage方式把 支付操作 通知到游戏首页,cp可以参考返回数据,作出相应应答,提高用户体验,此结果不作为支付实际结果,实际结果以服务端支付回调为准。


支付操作返回字段说明

操作

方向

事件

状态status

数据data(json)

用户放弃支付/返回游戏

开放平台--->cp

back_game

1

用户支付成功

开放平台--->cp

pay_result

1

支付成功


服务端支付成功通知

功能说明:

· 用户支付成功后(只有用户支付成功的情况下,开放平台才会通知游戏方),开放平台会向游戏方创建游戏时指定的notidy_url支付回调地址发送支付成功通知。

· 有部分渠道玩家点击高档充值档,打开渠道充值页面后玩家还可以选择低挡充值档,这时候需要游戏方验证充值档并根据实际金额兑换成游戏币发放给玩家

参数说明:

· channel_source  这里是接入渠道option

· game_orderno  游戏方生成的唯一订单号(required

· out_trade_no  开发者平台生成的唯一订单号(required

· props_name  游戏道具名称(option

· timeStamp 时间戳,1970-1-1至今秒数 (required

· nonce : 随机字符串(required

· amount : 商品价格(单位required

· game_appid: 开放平台gameAppidrequired

· payplatform2cp:附加字段只参与验签(option

· sign:签名(required

上述参数按照文档中的签名机制用game_key进行签名

请求说明:

请求URL: 这个是创建游戏时填写的支付回调地址

开放平台发起的get请求通知游戏方

返回示例:

success    注意:游戏方成功发货 必须返回‘success’这7个字符

 

游戏方返回字符

说明

success

游戏发货成功

fail

发货失败

repeat

订单发货重复

noexist

订单不存在





附录1

开放平台错误码Code说明:

Code

说明

1001

数据不能为空

1002

Sign验证失败

1011

充值金额有误

1017

参数错误

1018

发起支付失败