实时post角色信息接口
该接口请游戏自行实现POST(下面的文档直接拷贝百度文档,有问题请参考官方最新文档)
合作商户在玩家建立角色、角色升级、删除角色时,向百度的服务器通过POST发送该用户在对应服务器的角色信息。
接口形式:
http://youxi.baidu.com/roleAction/gameRolePost.jsp
其中:只支持POST方式
百度平台提供的实时推送角色的URL为
http://youxi.baidu.com/roleAction/gameRolePost.jsp
贴吧平台提供的实时推送角色的URL为
http://wanba.baidu.com/roleAction/gameRolePost.jsp
字段名称 |
必填 |
类型 |
说明 |
api_key |
是 |
String |
api_key为百度游戏开放平台分配给合作商户游戏的唯一编号。 |
user_id |
是 |
Long |
用户的百度用户编号id |
server_id |
是 |
string |
百度游戏开放平台分配给合作商户游戏的服务器编号 |
timestamp |
是 |
string |
服务请求时间戳,格式yyyy-MM-dd hh:mm:ss 时间格式2010-04-26 11:09:52 |
role_name |
是 |
string |
用户角色名角色名,中文角色名URL.Eecode编码后加入签名 |
role_time |
是 |
string |
角色更新时间或者创建时间, 格式yyyyMMddhhmmss |
action |
是 |
String |
CREATE:创建角色; DELETE:删除角色 UPDATE 角色更新 |
multi_flag |
是 |
string |
是否存在多角色,默认N,即不存在;Y存在多角色 |
role_level |
是 |
int |
角色等级 |
role_online_time |
是 |
int |
(精确到分,每日累计在线时间,单位为分钟) |
role_count_online_time |
是 |
int |
(精确到分,累计该角色所有在线时间,单位为分钟) |
sign |
是 |
string |
签名认证,详见文档2.5.1说明 |
返回值 |
说明 |
recive ok |
Post成功 |
ERROR_100 |
参数错误,或者参数格式错误,返回具体说明 |
ERROR_200 |
签名错误 |
ERROR_300 |
Post失败,加入重试机制 |
注意:RoleName需要decode前加入签名验证。
roleName传送至百度平台时,再encode一次。相当于对roleName做两次encode。
参与加密的roleName只做一次encode就可以了。
如上图为正确显示的POST成功的机制。
如果实时POST推送时发现时间没有推送,请检查action参数中的update数值是否正确
用户等级是每增加5级时,比如1、6、11等;
如果该服是多角色,返回当前登录的角色数据
为了保证游戏商户和百度游戏服务器之间通信的安全,避免出现api_key被盗用的情况,平台采用签名认证机制。由于app_secret密钥只有平台和应用双方知道,唯一而且不公开,所以将当前请求和商户游戏分配的app_secret进行MD5 HASH生成sign。
• 将请求中所有参数进行排序,排序为字典顺序,去除 & 符号;
• 在上述转换后的串前面加上游戏的app_secret;
• 用MD5算出上述串的标准32位MD5值,得到sign的值,全部转成大写字母。
第一步:在未加入签名认证之前百度游戏服务器向合作商户登录游戏服务器POST/GET下面的请求详细信息为:
user_id=672134&api_key=27dccf180127259d89d81737e0736700&server_id=220&cm_flag=y ×tamp=2010-04-26 11:09:52
第二步:经过第一步字典排序后,request的参数串就变为:
api_key=27dccf180127259d89d81737e0736700cm_flag=yserver_id=220timestamp=2010-04-26 11:09:52user_id=672134
第三步:示例中的游戏app_secret为9bc193eb243824610124382461e60002,则经过第二步放参数的第一位,去掉参数间的等号以及除时间戳内日期和小时之间以外的全部空格,示例中request的参数串变为:
9bc193eb243824610124382461e60002api_key27dccf180127259d89d81737e0736700cm_flagyserver_id220timestamp2010-04-26 11:09:52user_id672134
第四步:经过第三步MD5计算后,示例中生成的MD5值为:54d458365f74a3396917ed9f3fd8336d,则应用向百度游戏服务器最终POST请求的参数为:
api_key=27dccf180127259d89d81737e0736700&cm_flag=y&server_id=220×tamp=2010-04-26 11: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