百度游戏接入接口说明网页游戏.docx
《百度游戏接入接口说明网页游戏.docx》由会员分享,可在线阅读,更多相关《百度游戏接入接口说明网页游戏.docx(29页珍藏版)》请在冰豆网上搜索。
XX游戏接入接口说明网页游戏
XX游戏联运平台
游戏接入接口说明(网页游戏)
版本:
V1.3
欢迎加入XX游戏联运平台,本文档描述了XX游戏平台(本文以下简称之为“平台”)与合作方商户游戏(本文以下简称之为“合作方商户”)之间的通信接口标准,供合作方开发人员参看。
请合作厂商技术人员查看本文档后,及时反馈开发进度表(包含研发、连调与上线内测),以便我们安排人员技术支持与提前准备上线推广等事宜。
XX游戏–游戏运营–产品技术文档
---------------------------------------------------------------------------------------------------------------------
修订历史记录
日期
版本
说明
作者
2010.4.12
1.1
整理文档
许红艳
2010.4.14
1.2
调整文档结构,新增指南ppt
许红艳
2010.4.26
1.3
游戏接入新接口:
充值页和选服页在XX实现
许红艳
2010-5-16
1.3
新增实时post角色,定时获取角色接口
目录
1开发要点综述3
1.1开发流程简要3
1.1.1开发过程指导3
1.1.2XX与合作方交互说明4
1.1.3开发检查指南4
1.2特殊说明6
1.2.1访问方式6
1.2.2算法实现6
1.2.3编码问题7
2接口详细说明7
2.1登录接口7
2.1.1功能描述7
2.1.2接口参数7
2.2实时查询角色8
2.2.1功能描述8
2.2.2接口参数8
2.2.3返回结果9
2.3实时post角色信息接口9
2.3.1功能描述9
2.3.2接口参数10
2.4每日新建角色记录文件10
2.4.1功能描述10
2.5充值接口,即付款结果通知合作商户11
2.5.1功能描述11
2.5.2合作商户接收支付通知接口参数11
2.5.3支付通知响应13
2.6商户查询接口(MallGOP)13
2.6.1功能描述13
2.6.2单笔交易查询接口13
2.6.3按时间段查询接口15
2.6.4按时间段总账查询接口17
2.7根据userName查询userId单个查询接口19
2.7.1功能描述19
2.7.1接口参数19
3FAQ20
1开发要点综述
开发流程简要
1.1.1XX与合作方交互说明
事项
素材提供方
实施方
实施细节
备注
官网
游戏厂商
XX
URL地址由XX提供
充值
XX
厂商和XX
1.XX在自己的URL地址上实现选择服务器和提交订单
2.支付成功通知厂商发货
3.后台通知确保用户在前台通知失败的情况下,3天内仍然有机会补上游戏币
登录进入游戏(选服页)
XX
厂商和XX
XX提供选服页地址,接口验证通过直接进入游戏
直接访问游戏页面地址不允许
是否内嵌
无
厂商和XX
XX在后台设置相应是否内嵌,厂商需要保证内嵌后的页面正常
默认是需要内嵌
注册进新服
无
XX
XX
最近登录的服务器
游戏厂商
XX
XX根据用户的登录记录在选服页上显示
查询角色
厂商和XX
XX->厂商根据UID查询角色信息
充值时
实时post角色
厂商和XX
厂商->XX用户创建角色时通知XX
每日角色文件
厂商和XX
定时生成角色数据提供XX下载
帐户体系
XX
厂商
使用XX的用户名登录
传给厂商的是用户ID
防沉迷
用户输入
厂商和XX
XX与厂商需要交互数据,让用户补全信息
XX通过登录接口传入防沉迷标志位。
y:
需要防沉,n:
不需要防沉迷,不做控制
1.1.2开发检查指南
1.合作方需要提供的资料说明
提供数据
说明
用户认证
合作方提供的进入游戏和充值,只提供XX的已登录用户,不允许用户未登录直接进入游戏或充值。
游戏域名
游戏服务器的域名,例如一服(http:
//bd01.游戏名简写),二服(http:
//bd02.游戏名简写…)
收藏夹地址
用户退出游戏时的收藏地址统一为;用户收藏选服页或游戏服务器页的地址一为。
如果无法更改收藏属性也需要判断,如果用户直接访问合作方的游戏服务器地址需要跳转到
服务器编码
XX在用户登录时传递server_id,具体的值由厂商提供。
各游戏服角色查询接口地址
合作商户提供给XX查询用户是否激活过游戏或创建过角色的接口地址。
各个游戏页服可以不同,开新服前必须提供。
是否需要创建角色充值
根据这个标志位,在充值前判断是否需要调用角色查询接口。
是,调用角色查询接口;否,不调用
游戏币名称
举例:
金币,元宝
游戏币与人民币的兑换比例
1人民币:
xx金币,用于页面显示,XX实际结算的是人民币
统一登录接口地址
合作商户统一的进入游戏服务器的接口地址,保证未登录用户,直接返回到XX选服页。
直接收藏保存地址为。
各游戏页充值接口通知地址
XX通知合作商户的充值成功的接口地址。
各个游戏页服可以不同,开新服时必须提供。
客服后台
合作方需要提供给XX后台系统,能够根据XX的用户名和订单号查询到交易信息
实时监控
合作方需要对进入游戏页和充值结果通知页的正常显示增加监控,确保服务的正常运行。
2.双方验证资料
提供数据
说明
官网地址
XX提供本游戏的首页地址,当游戏页面的程序出错时会跳转到这个官网地址。
例如
xxx为游戏的首字母
论坛地址
XX提供官方贴吧,游戏合作方负责在游戏中相关页面展现。
玩家将通过此地址可以直接从游戏中跳转到游戏论坛
进入游戏地址
XX提供进入游戏的地址,游戏合作方需要保证正确进入指定的游戏服务器。
充值地址
XX提供充值的地址,游戏合作方需要保证游戏中链接的充值地址正确。
充值结果
XX通知支付结果,游戏合作方保证正确添加游戏币
查询角色
XX提交用户信息,合作方商户返回用户角色信息。
防沉迷补全资料URL
游戏中要求实现防沉迷,XX负责在用户登录时传入防沉迷标志位。
当游戏厂商强制用户退出游戏或提示处于防沉迷状态时,提醒用户补全个人信息=xxx
公告页地址
XX提供公告页的地址,游戏合作方负责在游戏中相关页面展现。
客服联系方式
XX提供客服联系方式,游戏合作方负责在游戏中相关页面展现。
1.1.3服务器稳定必备
1.1.3.1状态文件
文件名:
status.html
文件内容:
--bd status ok-->
放置位置:
登录服务器,域名所在的相关目录
1.1.3.2登录游戏域名
游戏名称登录游戏域名接口服务器IP地址到期时间登录接口状态文件url分区状态文件
1.2特殊说明
1.2.1访问方式
本文档描述接口的请求方式均为HTTP的POST方式
1.2.2算法实现
为了保证游戏商户和XX游戏服务器之间通信的安全,避免出现api_key被盗用的情况,平台采用签名认证机制。
由于app_secret密钥只有平台和应用双方知道,唯一而且不公开,所以将当前请求和商户游戏分配的app_secret进行MD5HASH生成sign。
1.2.2.1签名算法生成规则
•将请求中所有参数进行排序,排序为字典顺序,去除&符号;
•在上述转换后的串前面加上游戏的app_secret;
•用MD5算出上述串的标准32位MD5值,得到sign的值,全部转成大写字母。
1.2.2.2签名算法详细示例
第一步:
在未加入签名认证之前XX游戏服务器向合作商户登录游戏服务器POST/GET下面的请求详细信息为:
user_id=672134&api_key=27dccf180127259d89d81737e0736700&server_id=220&cm_flag=y×tamp=2010-04-2611:
09:
52
第二步:
经过第一步字典排序后,request的参数串就变为:
api_key=27dccf180127259d89d81737e0736700cm_flag=yserver_id=220timestamp=2010-04-2611:
09:
52user_id=672134
第三步:
示例中的游戏app_secret为9bc193eb243824610124382461e60002,则经过第二步放参数的第一位,去掉参数间的等号以及除时间戳内日期和小时之间以外的全部空格,示例中request的参数串变为:
9bc193eb243824610124382461e60002api_key27dccf180127259d89d81737e0736700cm_flagyserver_id220timestamp2010-04-2611:
09:
52user_id672134
第四步:
经过第三步MD5计算后,示例中生成的MD5值为:
54d458365f74a3396917ed9f3fd8336d,则应用向XX游戏服务器最终POST请求的参数为:
api_key=27dccf180127259d89d81737e0736700&cm_flag=y&server_id=220×tamp=2010-04-2611:
09:
52&user_id=672134&sign=54d458365f74a3396917ed9f3fd8336d
sign最后统一为大写:
api_key=27dccf180127259d89d81737e0736700&cm_flag=y&server_id=220×tamp=2010-04-2611:
09:
52&user_id=672134&sign=54D458365F74A3396917ED9F3FD8336D
1.2.3编码问题
XX游戏平台采用的UTF-8编码,涉及到中文时需要使用URLEncode编码。
【举例】:
XX游戏
URLEncode以后的值=%E7%99%BE%E5%BA%A6%E6%B8%B8%E6%88%8F
2接口详细说明
XX游戏联合运营商户需要完成以下接口,实现用户进入游戏页和接收支付通知。
2.1登录接口
XX->合作商户
2.1.1功能描述
XX传入XX游戏平台的账号信息,厂商实现用户登录游戏的功能,使用post方法。
2.1.2接口参数(带防沉迷标志位)
接口形式:
api_key=a001&user_id=110&server_id=s1&cm_flag=y×tamp=2010-04-2212:
12:
12&sign=wewet8fddafafgfghdfh
请求参数:
字段名称
必填
说明
api_key
是
api_key为XX游戏开放平台分配给合作商户游戏的唯一编号。
user_id
是
用户的XX用户编号id
server_id
是
XX游戏开放平台分配给合作商户游戏的服务器编号
cm_flag
是
防沉迷标示,y:
n:
y表示被防沉迷,n表示不需要被防沉迷
timestamp
是
服务请求时间戳,格式yyyy-MM-ddhh:
mm:
ss
sign
是
签名认证
请求返回值:
无
验证成功:
直接转向到server_id约定的游戏服务器页面(需要支持在XX框架内正常显示)
验证失败:
提示用户,返回到(需要支持在XX框架内正常显示)
2.2实时查询角色
XX->合作商户
2.2.1功能描述
XX传入XX游戏平台的账号信息,合作商户返回该用户在对应服务器的角色信息。
2.2.2接口参数
接口形式:
12:
12:
12&sign=wewet8fddafafgfghdfh
请求参数:
字段名称
必填
说明
api_key
是
api_key为XX游戏开放平台分配给合作商户游戏的唯一编号。
user_id
是
用户的XX用户编号id
server_id
是
XX游戏开放平台分配给合作商户游戏的服务器编号
timestamp
是
服务请求时间戳,格式yyyy-MM-ddhh:
mm:
ss
sign
是
签名认证
2.2.3返回结果
直接RESPONSE返回结果。
如果返回的是以ERROR_开头的字符串,则表示调用错误,否则返回以下格式的字符串:
role_name
例如:
火流星1
火流星2
火流星3
如果返回多条记录,每条记录之间用\n分隔,如果没有记录则返回空字符串。
数据库中位null的值以空字符串返回。
返回结果按照role_name升序进行排列。
参数名称
类型
说明
role_name
String
角色名(url重写,编码是utf-8)
以下是返回的错误码:
返回代码
描述信息
ERROR_-1
系统内部错误
ERROR_-100
传入参数不符合规则
ERROR_-200
系统错误
ERROR_-500
数据库操作失误
ERROR_-1406
账号不存在
ERROR_-1814
超过方法最大调用次数
ERROR_-11000
非法IP访问
2.3实时post角色信息接口
合作商户->XX
2.3.1功能描述
合作商户在玩家建立角色和删除角色时,向XX的服务器通过POST发送该用户在对应服务器的角色信息。
2.3.2接口参数
接口形式:
其中
XX提供的实时推送角色的URL为
字段名称
必填
说明
api_key
是
api_key为XX游戏开放平台分配给合作商户游戏的唯一编号。
user_id
是
用户的XX用户编号id
server_id
是
XX游戏开放平台分配给合作商户游戏的服务器编号
timestamp
是
服务请求时间戳,格式yyyy-MM-ddhh:
mm:
ss
role_name
是
用户角色名角色名(需要URLEncode以UTF-8进行编码)
action
是
CREATE:
创建角色DELETE:
删除角色
sign
是
签名认证
注意:
只支持POST方式
调用方法,参照newJavaDemo中的PostRoleServlet和InputRoleInfo.jsp
请求返回值:
reciveok
2.4每日新建角色记录文件
XX->合作商户
2.4.1功能描述
厂商将各服务器当天创建的角色以serverIduserIdroleNamecreateTimelastLoginTime格式(空格作为分隔符)保存在txt文件中(文件名就是“游戏名的拼音首字母_日期”)。
并开放存储该文件的服务器路径的ftp/wget权限,以便XX服务器第二天6点以后到厂商服务器抓取该txt文件。
例如ddt_2010-05-19.txt存储2010-05-19产生的所有角色信息,厂商需要在5 月20日上午6点前保证这个文件存在。
厂商提供:
1.每日定时生成文本文件(文件名就是日期_游戏名的拼音首字母)
2.分配创建ftp/wget的用户
3.文件每行的数据以空格分隔
【文件格式】
serverIduserIdroleNamecreateTimelastLoginTime
serverIduserIdroleNamecreateTimelastLoginTime
serverIduserIdroleNamecreateTimelastLoginTime
其中,serverId是用户创建角色服务器编号,userId是用户的在XX游戏的唯一ID,roleName是用户创建的角色名,createTime是用户创建角色的时间,lastLoginTime是用户最近登录游戏的时间。
【弹弹堂举例】
文件名:
ddt_2010-05-17.txt(5月18日,获取5月17日的数据)
文件内容:
22012709火流星2010-5-1719:
20:
332010-5-1719:
21:
33
22012710火流星22010-5-1719:
22:
332010-5-1719:
23:
33
22012711火流星32010-5-1719:
36:
332010-5-1719:
37:
33
2.5充值接口,即付款结果通知合作商户
XX->合作商户
2.5.1功能描述
XX游戏平台收到第三方支付成功后,向合作商户Mall发送付款结果通知,并等待接收Mall发货结果的响应信息。
合作商户需按照接口规范开发支付通知接收接口,以供XX游戏平台调用。
付款通知分为“前台WEB转向通知”和“后台通知”,付款完成后两种通知都会被发出。
不同在于前台WEB转向通知会在付款完成后随即发出,后台通知会定时发送。
2.5.2合作商户接收支付通知接口参数
接口形式:
12:
12:
12&sign=wewet8fddafafgfghdfh
请求参数:
字段名称
必填
说明
api_key
是
XX游戏开放平台分配给合作商户游戏的唯一编号
user_id
是
XX游戏平台对应玩家ID
server_id
是
游戏厂商平台对应服务器ID
order_id
是
XX游戏平台对应玩家订单号
wanba_oid
是
XX游戏平台对应订单号
amount
是
金额(单位元)
currency
是
币种
result
是
支付结果,支付成功返回“1”,支付中返回“0”,支付失败返回“-1”
back_send
是
后台通知(Y)、前台通知(N)
timestamp
是
时间戳
sign
是
签名认证
请求返回值:
--recv=ok-->或其它信息
1.订单验证签名成功,只要加游戏币成功或曾经加游戏币成功,每次都返回
--recv=ok-->。
2.接收到非
--recv=ok-->的信息,XX会连续三天继续发送支付结果通知。
【通知方式】
1.前台WEB转向通知
通过用户浏览器转向到游戏厂商对应的支付通知回调地址。
back_send=N,此时可以不做响应,只负责添加游戏币
2.后台通知
a)XX游戏平台会进行后台通知;(每一笔订单都会发送,是前台通知的补单程序)
b)参数定义:
当back_send=Y时,表明服务器端是进行的后台通知。
如果XX游戏平台未收到商户发回的
--recv=ok-->会在连续三天内一直发送后台通知
【前台Web转向通知示例】
12:
12:
12&sign=wewet8fddafafgfghdfh
【后台通知示例】
12:
12:
12&sign=wewet8fddafafgfghdfh
2.5.3支付通知响应
Mall处理支付通知请求,给用户发货后,将发货结果返回给XX游戏平台。
商户需要返回指定字符串
--recv=ok-->,并保证取货操作只完成一次。
2.6商户查询接口(MallGOP)
不是上线必需开发的接口,可以在二期完成
2.6.1功能描述
商户发送订单查询请求到XX游戏平台,并接收查询结果响应信息。
2.6.2单笔交易查询接口
接口形式:
20:
00:
00&format=xml&v=1.0&order_id=111111&sign=23ed99f1a0a1eac5f3787d522afde1c4
请求参数:
字段名称
必填
说明
api_key
是
XX游戏开放平台分配给合作商户游戏的唯一编号
api_name
是
服务名(订单明细查询接口对应wanba.findOrder方法)
format
是
需要Response的格式,XML、JSON。
order_id
是
商户订单号
timestamp
是
服务请求时间戳,格式yyyy-MM-ddhh:
mm:
ss
v
是
接口版本号(目前是1.0)
sign
是
签名认证,用于验证签名结果,不参加签名
请求返回值:
返回值
描述
result
订单状态,30表示支付成功
amount
订单金额,单元:
元
order_time
订单时间,格式:
年月日时分秒XXXX-XX-XXxx:
xx:
xx
return_attach
订单备注
wanba_oid
游戏平台的订单号
gameName
游戏名称,允许中文,UTF-8字符集
orde