ServerDocument.md 2.68 KB

GumpTech服务端接口文档

1. 用户登录验证接口

接口地址:http://api.gumptech.com/v1/user/verify_user.do      
参数:     
     appId:  游戏接入分配appid         
     appkey: 注意appkey都为小写字母          
     userId: GumpTech平台的用户id         
     sessionKey: 登录后回调给给第三方         

返回值:       
    {
        "code":100000
        "msg":"xxxxxx"
        "data":{
            "userId":23444
            "sessionKey":"xxx"
        }
    }

2. 充值通知第三方服务端接口

参数列表:
    orderId:   订单id  
    appId:  游戏接入分配appid  
    userId: 平台用户id   
    product: 购买商品名字   
    extraInfo:游戏接入方传入自定义参数,200字符
    currency:币种 exp:USD RMB     
    amount:支付过程中选中额度,第三方可以忽略此参数        
    realAmount: 最终用户支付的额度       
    serverId:  第三方区服id
    roleId:  第三方平台角色id
    subPayGateId: 支付类型id
    sig:  签名

第三方server端返回值:
    如果第三方验证成功,则返回字符串:success即可。

3.签名算法

注意:签名参数不能写成固定数量,一定要获取全部参数并且除sig参数外,然后按照字母升序排列。

    /**
     * 签名算法
     * @param request
     * @return
     */
    public String sig(HttpServletRequest request, String key){

        Enumeration names = request.getParameterNames();
        SortedSet<String> allParams = Sets.newTreeSet();

        while (names.hasMoreElements()) {
            String name = (String) names.nextElement();
            if (name.equals("sig")) {
                continue;
            }

            try {
                allParams.add(name + "=" + UriUtils.decode(request.getParameter(name), "utf-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }

        String params = Joiner.on("&").join(allParams)+key;
        String computedToken = DigestUtils.md5DigestAsHex(params.getBytes());
        return computedToken;
    }
注意:参数是按字母升序排列  akey=value&bkey=value.... + secretkey

4. 错误码对照表

100000   : 成功      
800000   : 应用不存在    
100010   : 用户密码错误   
100011   : 用户已经存在    
100012   : 用户不存在
100013   : 用户名不能为空   
900000   : 订单不存在  
900001   : 支付失败     
900003   : sig签名错误