server_document.md 2.48 KB

1. 充值通知第三方服务端接口(需提供回调地址)

参数列表:
    orderId: parter订单号
    tradId: 平台订单号
    appId: 游戏接入分配appid  
    userId: 平台用户id   
    product: 购买商品名字(50字符)
    currency: 币种 (目前仅有CNY)     
    amount: 充值金额(分) 
    channel:支付渠道(对应详情见4)
    sig:  签名(算法详见3)

第三方server端返回值:
    如果第三方验证成功,则返回字符串"success"即可,否则会通知10次后停止.如重复通知,注意校验平台订单号,如重复忽略.

2. 登录验证(可选)

url: http://inner-sdk.letsgame.mobi/v1/sdk/login_verify.do
参数:
     userId:uid
     appKey:第三方渠道的key
     sessionKey:验证key

返回值:
     {
        "code":100000(100000:成功,100012:用户不存在,-1:失败),
        "msg":"xxxxxx",
        "userId":1234
    }

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 + "=" + URLEncoder.encode(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(对应渠道的应用ID)

4.channel详情(部分上线)

100100:丫丫玩     √        
100200:小皮       √      
100300:安智               
100400:豌豆荚           
100500:应用宝     √  
100600:机锋       √       
100700:泡椒             
100800:木蚂蚁     √        
100900:靠谱助手   √           
101000:游戏群(熊猫玩)  
101100:琵琶网