egret-docs-master/platform/egret/channel/README.md

8.8 KiB
Raw Blame History

一、前期工作

二、接口 1.登录接口 2.支付接口 3.Egret接收支付结果接口(支付回调)

三、附录 附录一:签名生成规则 附录二状态码code对照表 附录三APP接入白鹭支付

一、前期工作

1. 登录Egret开放平台 http://open.egret.com :

获取对接所需要的appId , appKey (appId即为渠道Id) 获取游戏的正式地址和游戏的支付回调地址

2. 如果渠道使用自己支付系统, 请准备一个支付回调的接口填在Egret开放平台上

二、接口

如果渠道使用自己的登录系统则要确保接口1接通否则使用Egret的登录系统 如果渠道使用自己的支付系统则要确保接口2的两个接口接通否则会影响游戏充值。

1.登录接口

1.1 登录流程图

Tips:

1.2 接口地址:

白鹭开放平台上获取的游戏正式地址

例: http://api.egret-labs.org/v2/game/12345/88888

对应的游戏地址,登录http://open.egret.com, 渠道商->渠道管理->《你们的渠道名字》->游戏中心->已上架游戏, 点击对应游戏的 《游戏详情》

1.3 传参方式:

GET

1.4 参数说明:

参数名 必传 参数描述
userId 玩家在渠道上的用户id
userName 玩家在渠道上的用户昵称
userImg 玩家在渠道上的头像没有则传空字符串传参之前请将地址进行urlencode
userSex 玩家在渠道上的性别1表示男2表示女0表示未定义
channelExt 渠道透传的参数,此参数在用户支付时会原样回传给渠道的支付页面
time Unix时间戳精确到秒
sign 验证签名该接口签名方式md5(“appId=[appId]time=[time]userId=[userId][appKey]”); [appId]代表appId的值 appId, appKey有Egret开放平台提供 appId即为Egret开放平台上的渠道idsign 值应是数字和小写字母组成的字符串

请求样例: http://api.egret-labs.org/v2/game/12345/88888?userId=54321&userName=张三&userSex=1&userImg=http%3a%2f%2fimg.baidu.com%2f54321.jpg&channelExt=&time=1470109186&sign=0ca175b9c0f726a831d895e269332461

1.5 返回结果: 可以进入游戏,即表示接入成功

2.支付接口

以下为白鹭开放平台支付时序图和渠道相关的只有第4步和第7步。

步骤:

  • 玩家在游戏中触发购买行为
  • 游戏调用EgretH5SDK.pay() 方法
  • Egret开放平台生成未成功状态的订单
  • Egret将支付信息传给渠道的支付回调地址接口(拉起渠道的支付页面)
  • 唤起渠道的支付页面
  • 玩家支付
  • 渠道通知Egret支付成功
  • Egret将订单状态更新为成功
  • Egret通知游戏支付成功
  • 游戏方给玩家发放道具

2.1 接口地址: 由渠道提供的支付页面地址 (需要渠道方在open.egret.com上提交)

2.2 请求方式: POST

2.3 参数说明

参数名 必传 参数描述
userId 玩家在渠道上的用户id
userName 玩家在渠道上的用户昵称
gameId 游戏Id
goodsId 游戏商品Id
goodsName 游戏商品名称
money 支付金额(大陆地区统一为人民币元 float类型)
egretOrderId egret的订单Id
channelExt 渠道在用户登录进入游戏时的透传参数,在此原样回传给渠道
ext 此参数为透传参数通知支付结果接口调用的时候原因返回给Egret
gameUrl 游戏地址,渠道完成支付流程后,跳转回游戏的地址
time Unix时间戳精确到秒
sign 验证签名, 该接口签名方式md5(“appId=[appId]egretOrderId=[egretOrderId]gameId=[gameId]goodsId=[goodsId]money=[money]time=[time]userId=[userId][appKey]”); appId、appKey由Egret开放平台提供。(appId即为渠道在Egret开放平台上的渠道Id money不能小于1) sign 值应是数字和小写字母组成的字符串

2.4 返回结果 能拉起渠道的支付页面即为表示对接成功

3.Egret接收支付结果接口支付回调

3.1 接口地址: 白鹭开放平台上获取游戏支付回调地址. 例:http://api.egret-labs.org/v2/pay/12345/88888

对应的支付回调地址,登录http://open.egret.com, 渠道商->渠道管理->《你们的渠道名字》->游戏中心->已上架游戏, 点击对应游戏的 《游戏详情》

3.2 请求方式: POST

3.3 参数说明:

参数名 必传 参数描述
orderId 渠道订单id
userId 玩家在渠道的用户Id
money 玩家在渠道上的充值金额如果渠道有自己的代金券或者折扣应该传用代金券或者打折之前的金额大陆统一为人民币元float类型
ext Egret透传参数此参数在调用渠道支付页面地址时传给渠道在此需原样回传给Egret
time Unix时间戳精确到秒
sign 验证签名签名生成方式相见附录1

3.4 返回结果:

返回格式: json 返回数据字段:

字段名 字段描述 示例 备注
code 状态码 0 0为成功其他表示错误code对应关系见附录二
msg code对应消息 success 字符串类型
data 数据 [] 请求正常是,此字段为空数组

返回样例:

{
  "code":0,
  "msg":"success",
  "data":[]
}

三、附录

附录一:签名生成规则

签名生成规则:

  1. 对参与签名的参数的键值进行正序排列
  2. 生成待加密字符串
    • 第一步:对排好序的参与签名加密的参数按照排序顺序以 key1=value1key2=value2...keyn=valuen 形式连接成字符串
    • 第二步在已经连接好的字符串尾部连接appkey(appkey在开放平台获取) 最终形成的待加密字符串格式为key1=value1key2=value2...keyn=valuenappkey
  3. 对待加密字符串进行md5加密

生成签名方法php代码样例:

function createSign($params, $appkey){
		isset($params['sign']) && unset($params['sign']);
    	isset($params['page']) && unset($params['page']);
    	isset($params['per']) && unset($params['per']);
		ksort($params);
		$str  = "";
		foreach($params as $key=>$value){
			$str  .=  $key ."=". $value;
		}
		return md5($str.$appkey);

附签名检测工具:http://open.egret.com/checkSign

附录二状态码code对照表

code 对应含义
0 成功
1001 参数不全
1006 sign 错误,验证通不过
1009 重复订单
1013 支付失败

附录三APP接入白鹭支付

注意本节只适用于有自己App的CPS渠道(使用白鹭支付的渠道)

因白鹭支付内集成微信支付如在App内使用微信H5支付需对url单独处理

参考链接: http://blog.csdn.net/ahence/article/details/51317814