Skip to content

SDK for Android/IOS/H5服务器端集成说明

游戏服务器取得用户信息

由游戏服务器发起HTTP Post FORM请求,请求地址:

请求域名:(向商务索要,一般会随参数一起发出)
域名+/tools/gamefactor.ashx?action=factor_login
参数名数据类型说明备注
app_idString游戏的app_id必传
timestampString时间戳必传
uidString玩家身份令牌, 游戏端登录返回的必传
signString验证字符串必传

请求返回值: JSON格式字符串

  • 正确返回: {"status":1, "pi":"xxxxxx"}{"status":1}
  • 失败返回: {"status":0, "msg":"用户不存在 请检查uid"}

status 为1 时, 说明登录成功, 反之失败, 并返回失败原因。pi: 用户中宣部实名认证的 pi 值。

玩家充值成功后通知游戏服务器

由我方通知游戏服务器,请求为HTTP POST FORM请求。

参数名数据类型说明备注
app_idStringSDK平台的游戏ID必传
timestampString时间戳必传
uidString游戏端登录后返回的必传
cp_order_idStringCP的订单号必传
order_idString我方的订单编号必传
order_amountString充值金额, 保留2位小数, 校验签名时注意6.00 或 648必传
server_idString区服ID必传
role_idString游戏角色id必传
signString验证字符串(大写)必传
extras_paramsStringcp创建订单时,cp传入的, 本请求会先进行urlencode, 然后再发出 如果存在则传, 否则不传, 此参数不参与签名

如果上分成功, 请返回大写字符串 SUCCESS。如果失败, 请返回失败原因字符串。

签名算法

需要签名的字符串key=value的格式,用&连接并按照参数名ASCII字典序排序(即字母顺序)。

  1. 拼接加密key
  2. 拼接加密key:上一步得到的字符串 + "&pay_key=" + pay_key
    • 备注: login_key只在客户端中使用, 服务端统一使用pay_key进行签名
  3. MD5签名,编码为UTF-8
    • 第2步得到的字符串进行MD5签名

签名算法示例:

  • app_id: e6d8895be1484db0
  • login_key: 620d8f372038464980396e65730fa535
  • pay_key: f7505f7fbbc844fc98d5b9809bdc27f3

第1步:

app_id=e6d8895be1484db0&timestamp=1591259794&uid=1-10

第2步:

app_id=e6d8895be1484db0&timestamp=1591259794&uid=1-10&pay_key=f7505f7fbbc844fc98d5b9809bdc27f3
如果是充值请求, 则为:
app_id=e6d8895be1484db0&cp_order_id=cp20060416365425&order_amount=6.00&order_id=20060416365404&role_id=8888&server_id=10001&timestamp=1591259794&uid=1-10&pay_key=f7505f7fbbc844fc98d5b9809bdc27f3

第3步:

String sign=MD5(第二步得到的字符串)

最终post(form)请求参数为:

app_id=e6d8895be1484db0
cp_order_id=cp20060416365425
order_amount=6.00
order_id=20060416365404
role_id=8888
server_id=10001
timestamp=1591259794
uid=1-10
sign=799D0EA4948177D8FAF789D28EA90C78

注意:

  • 你方在校验签名时, 注意order_amount需要保留2位小数
  • 如果role_id, server_id是中文或包含特殊符号的情况下, 需要urldecode一下, 建议始终对这2个参数的值进行urldecode