服务端文档

一.签名规则

  1. 原始签名字符串

    设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
    特别注意以下重要规则:
    ◆ 参数名ASCII码从小到大排序(字典序);
    ◆ 如果参数的值为空不参与签名;
    ◆ 参数名区分大小写;
    ◆ 传送的sign参数不参与签名,将生成的签名与该sign值作校验。
    ◆ 如果role_id,server_id是中文或包含特殊符号的情况下,需要urldecode一下,建议始终对这2个参数的值进行urldecode

  2. 拼接pay_key

    在stringA最后拼接上key[即 StringA + "&pay_key="+ pay_key ] 得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将MD5后的结果字符串转换为大写,得到sign。
           

  3. 计算MD5签名

    计算string sign=MD5(stringSignTemp),并把sign字符串转换为大写,得到sign。
           

二.玩家登录验证

  1. 接口说明

    玩家在游戏登录成功后,游戏服务端需要向我方二次校验玩家的合法性

  2. 请求URL

    https://sdk.qianhuanshuzi.com/tools/gamefactor.ashx?action=factor_login

  3. 请求方式

    HTTP POST  application/x-www-form-urlencoded (即POST FROM 表单形式)


  4. 请求参数

    参数名称 必填 类型 示例值 描述
    app_id String(16) 1650e68cf57045c1 我方游戏的app_id
    timestamp String(10) 1732702233 10位时间戳>
    uid String(60) 1-1或者1-1-1或者hord_15 玩家身份id,客户端游戏端登录成功后返回的
    sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值(大写),算法如下(把A,B,C,D替换为真实的值):MD5(app_id=A&timestamp=B&uid=C&pay_key=D)
  5. 返回参数(JSON格式)

    参数名称 必填 类型 示例值 描述
    status Int(32) 1或者0  1表示成功,0表示失败
    realname String(64) 张三 玩家真实姓名
    idcard String(64) 320110200000000000 玩家身份证号码
    msg        String(64) 用户不存在,请检查uid 失败原因描述
  6. 返回示例数据

    成功返回:

    {"status":1}

      

    失败返回:

    {"status":0, "msg":"用户不存在 请检查uid"}

三.充值结果回调接口

  1. 接口说明

    充值成功后,将由SDK服务器(我方)向游戏服务器(你方)发起POST请求


  2. 请求URL

    游戏研发或者游戏厂商提供,如果quick出包,请在quick后台获取

  3. 请求方式

    HTTP POST  application/x-www-form-urlencoded (即POST FROM 表单形式)        

  4. 请求参数

    参数名称 必填 类型 示例值 描述
    app_id String(16) 1650e68cf57045c1 我方游戏的app_id
    timestamp String(10) 1732702233 10位时间戳        
    uid String(60) 1-1或者1-1-1或者hordroid_15等等   玩家身份id,客户端游戏端登录成功后返回的
    cp_order_id String(60) CPORDER123456789 游戏厂商订单号,在客户端调起支付时,你方传入的订单号
    order_id String(60) 241125110055642 由SDK平台生成的订单号,即我方的订单号
    order_amount decimal(18,2) 6.00 订单金额,始终保留2位小数
    server_id String(60) 10001 区服ID
    role_id String(60) ZEvSaxo 游戏角色ID
    extras_params String(128) 1_112_123 游戏厂商下单时传递的透传参数,原样urlencode后返回此参数不参与签名
    sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值(大写),算法如下(把A,B,C,D~I替换为真实的值): MD5(app_id=A&cp_order_id=B&order_amount=C&order_id=D
    &role_id=E&server_id=F&timestamp=G&uid=H&pay_key=I)         

  5. 你方返回示例数据

    成功返回7个大写字母:

    SUCCESS

    失败返回:

    非SUCCESS字符串

四.支付成功反向通知(无特殊说明,不用接)

  1. 接口说明

    游戏使用研发的支付,研发发货成功后,由游戏服务器(你方)向SDK服务器(你方)发起POST请求


  2. 请求URL

    https://sdk.qianhuanshuzi.com/tools/r_and_d_notify.ashx?action=payment_success

  3. 请求方式

    HTTP POST  application/x-www-form-urlencoded (即POST FROM 表单形式)        

  4. 请求参数

    参数名称 必填 类型 示例值 描述
    app_id String(16) 1650e68cf57045c1 我方游戏的app_id
    timestamp String(10) 1732702233 10位时间戳        
    uid String(60) 1-1或者1-1-1或者hordroid_15等等   我方玩家身份id,客户端游戏端登录成功后返回的
    cp_order_id String(60) CPORDER123456789 游戏厂商订单号,在客户端调起支付时,你方传入的订单号
    order_amount decimal(18,2) 6.00 订单金额,始终保留2位小数
    server_id String(60) 10001 区服ID
    role_id String(60) ZEvSaxo 游戏角色ID
    goods_id String(128) 10001 游戏商品id
    goods_name

    String(128)
    首充大礼包 游戏商品名称
    sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值(大写),算法如下(把A,B,C,D~I替换为真实的值): MD5(app_id=A&cp_order_id=B&order_amount=C&role_id=D&server_id=E&timestamp=F&uid=G&pay_key=H)         
  5. 我方返回示例数据

    成功返回:

    {"status": 1,"order_id":"我方订单编号","cp_order_id":"你方订单编号原样返回"}

    失败返回:

    {"status":0, "msg":"错误原因"}