easygame储值结果通知机制
接口约定
1) 通过构造HTTP请求(POST方式)发起接口请求
2) POST数据采用utf-8编码
3) 接口返回JSON格式数据
4) 签名规则
签名 = MD5(data + game_server_key)
- game_server_key是每个游戏私有的密钥,首次接入游戏时向技术人员索要。
- MD5 使用RFC 1321 标准,编码后需要转换回全小写(本文提到的所有md5 结果, 都需要转换成全小写)。
- 表达式中的“+”号表示字符串接,并不存在。
- 签名内容是指请求数据(data 字段)中,各字段名及其字段值的拼接,字段名与字 段值之间使用等号(=)连接。拼接时需对字段名排序,排序方式是按字段名进行升序排列。
注意:签名内容不应包含“&”符号,拼接签名内容时需把“&”符号剔除。字符串中若有换行情况,也应把换行符(回车或换行)剔除。
计算MD5签名时,取签名内容的字节时,应以UTF-8编码取字符串的字节值。
厂商需要将我们传过来的参数 decode 一次
签名示例:
假设请求参数是orderid=1×tamp=2&pvc=3,game_server_key是ks2u
那么sign = md5(“orderid=1pvc=3timestamp=2*ks2u*”),再把sign全部转成小写。
储值成功通知接口
1) 接口描述
当easygame收到金流确认储值到账的通知时,向游戏回报储值结果,只回报成功的订单。
2) 请求地址
也叫回调地址,由游戏方提供。允许不同服使用不同的地址,接口回调时会回传游戏别名和服别名,如果多个服或者多个游戏使用同个地址,需要游戏服务端自行判断充值的游戏和服。
3) 请求方:easygame服务器
4) 应答方:游戏服务器
5) 请求参数:
参数名 | 数据类型 | 定义 |
---|---|---|
orderid | String | easygame订单号 |
userid | String | easygame用户惟一标识 |
roleid | String | 游戏角色ID |
rolename | String | 游戏角色名 |
game | string | 游戏别名,由easygame分配 |
server | String | 游戏服务器名,由easygame分配 |
amount | Double | 订单金额,TWD |
gold | Integer | 需要游戏发放的虚币数量(厂商发虚币请务必根据gold来发) |
paytype | String | 充值类型,如果存在多种充值方式该值根据不同充值渠道返回,默认都是应用商城指定的金流。如:google、卡密儲值 |
info | String | 游戏自定义参数,启用充值视窗时由游戏设定 |
timestamp | Integer | 充值成功的时间,是金流与easygame服务器确认充值成功的时间,UNIXTIME时间戳 |
pvc | String | 通讯协议版本号,是保留参数,只有一个值1 |
item | String | 如果购买的不是游戏币,而是其他道具,如周卡,月卡,这里是相应的道具ID。道具显示名称、道具ID(月卡统一为month_card)由厂商告知我们技术。ID值应该由纯小写字母、数字、下划线组成,长度不能超过100字节。此功能目前只支持GOOGLE金流。此值为可选,购买游戏币通知没有该项 |
sign | String | 请参考签名规则 |
6) 返回数据:
code(响应码) | error(结果描述) | 含义说明 |
---|---|---|
3 | SUCCESS | 充值成功 |
3001 | OTHER_ERROR | 其它错误 |
3002 | PARAMETER_NOT_LEGAL | 其它参数不合法 |
3003 | SIGN_NOT_MATCH | 数据签名不匹配 |
3004 | USER_NOT_EXIST | 无法找到用户 |
3005 | FAILURE | 无法找到订单 |
3006 | REPEAT_ORDER | 订单重复提交 |
3007 | AMOUNT_DIFFER | 订单金额不匹配 |
3008 | PARAMETER_NOT_LEGAL | 其它参数不合法 |
7) 返回数据示例(JSON):
{“code”:3, “error”:”SUCCESS”}