Пример #1
0
def handleHttp(dictParam: dict):

    fRmbFen = float(dictParam.get('rmb', "0"))
    if not checkIsFloat(fRmbFen):
        raise exceptionLogic(errorLogic.client_param_invalid)
    # 客户的给的是分
    iRmbFen = int(fRmbFen * 100)

    if iRmbFen < 100 or iRmbFen > 300000:
        raise exceptionLogic(errorLogic.pay_online_amount_limit)

    try:
        #检查用户是否登录,检查用户token
        strAccountId = str(dictParam.get("accountId", ""))
        strToken = str(dictParam.get("token", ""))
    except:
        raise exceptionLogic(errorLogic.client_param_invalid)

    if len(strAccountId) <= 0:
        raise exceptionLogic(errorLogic.player_id_empty)

    if not procVariable.debug:
        certify_token(strAccountId, strToken)

    objResp = cResp()
    objResp.data = yield from lpayPayOrder(strAccountId, iRmbFen, "wx_wap",
                                           dictParam.get("srcIp", ""))

    return classJsonDump.dumps(objResp)
Пример #2
0
def handleHttp(dictParam: dict):
    #每月VIP活动
    objResp = cResp()
    strAccountId = dictParam.get('accountId', '')
    strToken = dictParam.get('token', '')

    certifytoken.certify_token(strAccountId, strToken)
    objPlayerData = yield from classDataBaseMgr.getInstance().getPlayerData(
        strAccountId)
    objActiveData = yield from classDataBaseMgr.getInstance().getActiveData(
        strAccountId)
    if objPlayerData is None:
        raise exceptionLogic(errorLogic.player_data_not_found)
    if objActiveData is None:
        raise exceptionLogic(errorLogic.active_not_find)
    #判断活动是否完成
    objActiveItme = objActiveData.dictActiveItem.get(2001)
    if objActiveItme is None:
        raise exceptionLogic(errorLogic.active_not_find)
    if objActiveItme.iActiveState == 1:
        raise exceptionLogic(errorLogic.active_have_already_get)

    #升级需要的流水
    upWater = vipConfig.vip_config[objPlayerData.iLevel].get(
        'upGradeValidWater')
    #保级需要的流水
    keepWater = vipConfig.vip_config[objPlayerData.iLevel].get(
        'keepValidWater')
    #这个月24小时内充值存款
    payMonthly, orderTime = yield from classSqlBaseMgr.getInstance(
    ).getAccountFirstPayByDay(strAccountId)
    # 获取当月有效流水自己平台
    validWater = yield from classSqlBaseMgr.getInstance().getValidWaterMonthly(
        strAccountId)
    #获取平博当月有效流水
    pingboValidWater = yield from classSqlBaseMgr.getInstance(
    ).getAccountPinboHistoryValidWater(timeHelp.monthStartTimestamp(),
                                       timeHelp.nextMonthStartTimestamp(),
                                       strAccountId)
    pingboValidWater = 0 if pingboValidWater.get(
        'validWaterCoin') is None else pingboValidWater.get('validWaterCoin')
    data = cData()
    data.accountId = strAccountId
    #升级还需要的流水
    data.upLevelWater = "%.2f" % round(
        (upWater - objPlayerData.iLevelValidWater) / 100, 2)
    data.keepLevelWater = "%.2f" % round(
        (keepWater - (validWater + pingboValidWater)) / 100, 2)
    data.level = objPlayerData.iLevel
    data.rebate = vipConfig.vip_config[objPlayerData.iLevel].get('rebate')
    data.recharge = "%.2f" % round(payMonthly / 100, 2)
    data.activeTime = objActiveData.dictActiveItem.get(2001).iActiveTime
    data.validWater = "%.2f" % round((pingboValidWater + validWater) / 100, 2)
    data.activeId = 2001
    objResp.data = data
    return classJsonDump.dumps(objResp)
Пример #3
0
def handleHttp(dictParam: dict):
    objResp = cResp()
    strAccountId = dictParam.get('accountId','')
    iLevel = int(dictParam.get('level',0))
    strToken = dictParam.get('token','')

    certifytoken.certify_token(strAccountId, strToken)

    yield from joinVipPayRebateActive(strAccountId, iLevel)

    return classJsonDump.dumps(objResp)
Пример #4
0
def handleHttp(dictParam: dict):
    objResp = cResp()

    fRmbFen = float(dictParam.get('rmb', "0"))
    if not checkIsFloat(fRmbFen):
        raise exceptionLogic(errorLogic.client_param_invalid)
    # 客户的给的是分
    iRmbFen = int(fRmbFen * 100)
    # 检查用户是否登录,检查用户token

    strAccountId = str(dictParam["accountId"])
    strToken = str(dictParam.get("token", ""))

    if not procVariable.debug:
        certify_token(strAccountId, strToken)
    #这里用web的
    objResp.data = yield from lpayPayOrder(strAccountId, iRmbFen,
                                           "unionpay_wap",
                                           dictParam.get("srcIp", ""))

    return classJsonDump.dumps(objResp)
Пример #5
0
def handleHttp(dictParam: dict):
    #首充活动
    objResp = cResp()
    strAccountId = dictParam.get('accountId', '')
    strToken = dictParam.get('token', '')

    certifytoken.certify_token(strAccountId, strToken)
    objActiveData = yield from classDataBaseMgr.getInstance().getActiveData(
        strAccountId)
    if objActiveData is None:
        raise exceptionLogic(errorLogic.active_not_find)
    #判断活动是否完成
    objActiveItme = objActiveData.dictActiveItem.get(1000)
    if objActiveItme is None:
        raise exceptionLogic(errorLogic.active_not_find)
    if objActiveItme.iActiveState == 1:
        raise exceptionLogic(errorLogic.active_have_already_get)

    activeTime = objActiveData.dictActiveItem.get(1000).iActiveTime
    recharge = yield from classSqlBaseMgr.getInstance().getFirstRechCoin(
        strAccountId, activeTime)
    #获取当月有效流水自己平台
    validWater = yield from classSqlBaseMgr.getInstance().getValidWaterMonthly(
        strAccountId)
    pingboValidWater = yield from classSqlBaseMgr.getInstance(
    ).getAccountPinboHistoryValidWater(activeTime, activeTime + 86400,
                                       strAccountId)
    pingboValidWater = 0 if pingboValidWater.get(
        'validWaterCoin') is None else pingboValidWater.get('validWaterCoin')
    data = cData()
    data.recharge = "%.2f" % round(recharge / 100, 2)
    data.validWater = "%.2f" % round((validWater + pingboValidWater) / 100, 2)
    data.activeTime = objActiveData.dictActiveItem.get(1000).iActiveTime
    data.activeId = 1000
    objResp.data = data
    return classJsonDump.dumps(objResp)
Пример #6
0
def handleHttp(dict_param: dict):
    """app登陆"""
    objRsp = cResp()

    agentId = dict_param.get("agentId", "")
    password = dict_param.get("password", "")
    token = dict_param.get("token", "")
    if not agentId:
        raise exceptionLogic(errorLogic.client_param_invalid)
    if password or token:
        if password:
            strPwd = PwdEncrypt().create_md5(password)

            objPlayerData, objLock = yield from classDataBaseMgr.getInstance(
            ).getPlayerDataByLock(agentId)
            objAgentData = yield from classDataBaseMgr.getInstance(
            ).getAgentData(agentId)
            if objPlayerData is None:
                raise exceptionLogic(errorLogic.player_data_not_found)
            sql = "select status from dj_agent_apply where agentId=%s"
            with (yield from
                  classSqlBaseMgr.getInstance().objDbMysqlMgr) as conn:
                result = yield from conn.execute(sql, [agentId])
                if result.rowcount <= 0:
                    raise exceptionLogic(errorLogic.agent_data_not_found)
                else:
                    for var_row in result:
                        status = var_row.status
            if status == 1:
                raise exceptionLogic(errorLogic.agent_id_under_review)
            if objAgentData is None:
                raise exceptionLogic(errorLogic.agent_data_not_found)
            if objPlayerData.iUserType != 2:
                raise exceptionLogic(errorLogic.agent_data_not_found)
            if strPwd != objPlayerData.strPassword:
                yield from classDataBaseMgr.getInstance(
                ).releasePlayerDataLock(agentId, objLock)
                raise exceptionLogic(errorLogic.login_pwd_not_valid)
            if timeHelp.getNow() < objPlayerData.iLockEndTime:
                yield from classDataBaseMgr.getInstance(
                ).releasePlayerDataLock(agentId, objLock)
                raise exceptionLogic(errorLogic.player_id_invalid)
            else:
                # objAgentData.strAppToken = generate_token(agentId)
                objAgentData.strToken = generate_token(agentId)
                objPlayerData.iStatus = 0
                objPlayerData.iLockStartTime = 0
                objPlayerData.iLockEndTime = 0
                objPlayerData.strLockReason = ""
                objPlayerData.iLastLoginTime = timeHelp.getNow()
                yield from classDataBaseMgr.getInstance().setPlayerDataByLock(
                    objPlayerData, objLock)

        else:
            certify_token(agentId, token)
            objPlayerData = yield from classDataBaseMgr.getInstance(
            ).getPlayerData(agentId)
            objAgentData = yield from classDataBaseMgr.getInstance(
            ).getAgentData(agentId)
            if objPlayerData is None:
                raise exceptionLogic(errorLogic.user_data_not_found)
            sql = "select status from dj_agent_apply where agentId=%s"
            with (yield from
                  classSqlBaseMgr.getInstance().objDbMysqlMgr) as conn:
                result = yield from conn.execute(sql, [agentId])
                if result.rowcount <= 0:
                    raise exceptionLogic(errorLogic.agent_data_not_found)
                else:
                    for var_row in result:
                        status = var_row.status
            if status == 1:
                raise exceptionLogic(errorLogic.agent_id_under_review)
            if objAgentData is None:
                raise exceptionLogic(errorLogic.agent_data_not_found)
            if objPlayerData.iUserType != 2:
                raise exceptionLogic(errorLogic.agent_data_not_found)
            # if token != objAgentData.strAppToken:
            if token != objAgentData.strToken:
                raise exceptionLogic(errorLogic.login_token_not_valid)
            if timeHelp.getNow() < objAgentData.iLockEndTime:
                raise exceptionLogic(errorLogic.player_id_invalid)
            else:
                objAgentData.iStatus = 0
                objAgentData.iLockStartTime = 0
                objAgentData.iLockEndTime = 0
                objAgentData.strLockReason = ""
        yield from classDataBaseMgr.getInstance().setAgentData(objAgentData)
        unReadNum = yield from classSqlBaseMgr.getInstance(
        ).getAgentMsgUnReadNum(agentId)
        # 构造回包
        objRsp.data = cData()
        objRsp.data.agentId = objPlayerData.strAccountId
        objRsp.data.token = objAgentData.strToken
        objRsp.data.cid = objAgentData.iCid
        objRsp.data.headAddress = objPlayerData.strHeadAddress
        objRsp.data.count = unReadNum
        return classJsonDump.dumps(objRsp)
    else:
        raise exceptionLogic(errorLogic.client_param_invalid)
Пример #7
0
def handleHttp(dictParam: dict):
    #领取活动奖金
    objResp = cResp()
    strAccountId = dictParam.get('accountId','')
    strToken = dictParam.get('token','')
    iActiveId=int(dictParam.get('activeId',0))

    certifytoken.certify_token(strAccountId, strToken)
    objPlayerData,objPlayerLock=yield from classDataBaseMgr.getInstance().getPlayerDataByLock(strAccountId)
    if objPlayerData is None:
        yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData, objPlayerLock)
        raise exceptionLogic(errorLogic.player_data_not_found)
    objActiveData, objLock = yield from classDataBaseMgr.getInstance().getActiveDataByLock(strAccountId, None)
    #判断活动是否完成
    objActiveItme=objActiveData.dictActiveItem.get(iActiveId)
    if objActiveItme is None:
        yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData, objPlayerLock)
        yield from classDataBaseMgr.getInstance().setActiveDataByLock(objActiveData, objLock)
        raise exceptionLogic(errorLogic.active_not_find)
    if objActiveItme.iActiveState==1:
        yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData, objPlayerLock)
        yield from classDataBaseMgr.getInstance().setActiveDataByLock(objActiveData, objLock)

        raise exceptionLogic(errorLogic.active_have_already_get)

    global awardCoin,transFrom
    awardCoin=0
    transFrom=""
    if iActiveId==1000:
        #首冲活动领取
        #计算他该领取的金钱
        recharge=yield from classSqlBaseMgr.getInstance().getFirstRechCoin(strAccountId,objActiveItme.iActiveTime)
        recharge=recharge/100
        config_keys=[]
        for x in activeConfig.activeConfig_cfg.keys():
            if x.startswith('10'):
                config_keys.append(int(x))
        config_keys.sort()
        for x in config_keys:
            if recharge>=int(activeConfig.activeConfig_cfg[str(x)].get('taskConditionParam2')):
                awardCoin=activeConfig.activeConfig_cfg[str(x)].get('awardNum')
                transFrom=activeConfig.activeConfig_cfg[str(x)].get('taskDes')
                continue
            else:
                break
    elif iActiveId==2001:
        #vip月首冲活动
        if objPlayerData.iLevel == 0:
            yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData, objPlayerLock)
            raise exceptionLogic(errorLogic.active_requirements_not_met)
        #1.判断是否领取时间过期
        nowDtObj=datetime.fromtimestamp(getNow())
        actDtobj=datetime.fromtimestamp(objActiveItme.iActiveTime)
        if (nowDtObj.year!=actDtobj.year) and (nowDtObj.month!=actDtobj.month):
            objActiveItme.iActiveState=1
            yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData,objPlayerLock)
            yield from classDataBaseMgr.getInstance().setActiveDataByLock(objActiveData,objLock)
            raise exceptionLogic(errorLogic.active_award_not_get)
        totalCoin,fistrtTime=yield from classSqlBaseMgr.getInstance().getAccountFirstPayByDay(strAccountId)
        totalCoin=0 if totalCoin is None else totalCoin/100
        if totalCoin<10000:
            yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData, objPlayerLock)
            yield from classDataBaseMgr.getInstance().setActiveDataByLock(objActiveData, objLock)
            raise exceptionLogic(errorLogic.active_requirements_not_met)
        for x in activeConfig.activeConfig_cfg.keys():
            if objPlayerData.iLevel == int(activeConfig.activeConfig_cfg[x].get('taskConditionParam2')):
                awardCoin = activeConfig.activeConfig_cfg[x].get('awardNum')
                transFrom = activeConfig.activeConfig_cfg[str(x)].get('taskDes')
    #加钱
    awardCoin=awardCoin*100
    objActiveItme.iActiveState = 1
    objPlayerData.iCoin+=awardCoin
    # 增加不可提现额度
    objActiveData.iNotDrawingCoin+=awardCoin
    #记录流水
    yield from addPlayerBill(strAccountId,awardCoin,CoinOp.coinOpActiveAward,1,transFrom,strAccountId,dictParam.get('srcIp'))
    yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData, objPlayerLock)
    yield from classDataBaseMgr.getInstance().setActiveDataByLock(objActiveData, objLock)
    return classJsonDump.dumps(objResp)
Пример #8
0
def handleHttp(request:dict):
    """获取用户信息接口
    """
    url=tokenhelp.PINBO_URL+"/player/info"
    headers=tokenhelp.gen_headers()
    accountId=request.get('accountId','')
    token = request.get('token','')
    source = request.get('source', 'pc')
    if not all([accountId, source]):
        logging.debug(errorLogic.client_param_invalid)
        raise exceptionLogic(errorLogic.client_param_invalid)

    certify_token(accountId, token)

    objPlayerData = yield from classDataBaseMgr.getInstance().getPlayerData(accountId)
    if source == 'pc':
        if objPlayerData.strToken!=token:
            logging.debug(errorLogic.login_token_not_valid)
            raise exceptionLogic(errorLogic.login_token_not_valid)
    elif source == 'app':
        if objPlayerData.strAppToken!=token:
            logging.debug(errorLogic.login_token_not_valid)
            raise exceptionLogic(errorLogic.login_token_not_valid)

    params={}
    params['userCode']='probet.'+accountId

    try:
        with (aiohttp.ClientSession()) as session:
            with aiohttp.Timeout(10):
                resp = yield from session.get(url=url,params=params,headers=headers,verify_ssl=False)
                if resp.status!=200:
                    logging.exception(errorLogic.third_party_error)
                    raise exceptionLogic(errorLogic.third_party_error)

    except Exception as e:
        logging.exception(repr(e))
        raise exceptionLogic(errorLogic.sys_unknow_error)
    else:
        res= yield from resp.read()
        res=json.loads(res.decode())

        code = res.get('code', '')
        if code != '' and (code in errorLogic.pinbo_error_code.keys()):
            logging.debug(code + ":" + errorLogic.pinbo_error_code[code])

            raise exceptionLogic([code, errorLogic.pinbo_error_code[code]])

        availableBalance=res.get("availableBalance")
        if availableBalance is None:
            logging.debug(errorLogic.third_party_error)
            raise exceptionLogic(errorLogic.third_party_error)
        objPlayerData, objLock = yield from classDataBaseMgr.getInstance().getPlayerDataByLock(accountId)

        objPlayerData.iPingboCoin = availableBalance * 100
        objPlayerData.iLastPBCRefreshTime=getNow()
        yield from classDataBaseMgr.getInstance().setPlayerDataByLock(objPlayerData, objLock)
        res['availableBalance']="%.2f"%round(availableBalance,2)
        ret={}
        ret['ret']=errorLogic.success[0]
        ret['data']=res
        ret['retDes']=errorLogic.success[1]

        return classJsonDump.dumps(ret)
Пример #9
0
def handleHttp(dict_param: dict):
    """登陆"""
    objRsp = cResp()

    # TODO 多设备同时登陆
    source = dict_param.get('source', 'pc')
    strAccountId = dict_param.get("accountId", "")
    strPassword = dict_param.get("password", "")
    strToken = dict_param.get("token", "")
    if not all([strAccountId, source]):
        raise exceptionLogic(errorLogic.client_param_invalid)

    if strToken or strPassword:
        if strPassword:
            strPwd = PwdEncrypt().create_md5(strPassword)

            objPlayerData, objLock = yield from classDataBaseMgr.getInstance(
            ).getPlayerDataByLock(strAccountId)

            if objPlayerData is None:
                raise exceptionLogic(errorLogic.player_data_not_found)
            if strPwd != objPlayerData.strPassword:
                yield from classDataBaseMgr.getInstance(
                ).releasePlayerDataLock(strAccountId, objLock)
                raise exceptionLogic(errorLogic.login_pwd_not_valid)
            if timeHelp.getNow() < objPlayerData.iLockEndTime:
                yield from classDataBaseMgr.getInstance(
                ).releasePlayerDataLock(strAccountId, objLock)
                raise exceptionLogic(errorLogic.player_id_invalid)
            else:
                if source == 'pc':
                    objPlayerData.strToken = generate_token(strAccountId)
                elif source == 'app':
                    objPlayerData.strAppToken = generate_token(strAccountId)
                else:
                    raise exceptionLogic(errorLogic.client_param_invalid)
                objPlayerData.iStatus = 0
                objPlayerData.iLockStartTime = 0
                objPlayerData.iLockEndTime = 0
                objPlayerData.strLockReason = ""
                objPlayerData.strLastDeviceName = ""  #macAddr
                objPlayerData.iLastLoginTime = timeHelp.getNow()
                objPlayerData.strLastLoginIp = dict_param.get("srcIp", "")
                yield from classDataBaseMgr.getInstance().setPlayerDataByLock(
                    objPlayerData, objLock)
                #yield from update_status(strAccountId, 'ACTIVE')
            unReadNum = yield from classSqlBaseMgr.getInstance(
            ).getSysMsgUnReadNum(strAccountId)
        else:
            certify_token(strAccountId, strToken)
            objPlayerData, objLock = yield from classDataBaseMgr.getInstance(
            ).getPlayerDataByLock(strAccountId)

            if objPlayerData is None:
                raise exceptionLogic(errorLogic.player_data_not_found)
            if source == 'pc':
                if strToken != objPlayerData.strToken:
                    yield from classDataBaseMgr.getInstance(
                    ).releasePlayerDataLock(strAccountId, objLock)
                    raise exceptionLogic(errorLogic.login_token_not_valid)
            elif source == 'app':
                if strToken != objPlayerData.strAppToken:
                    yield from classDataBaseMgr.getInstance(
                    ).releasePlayerDataLock(strAccountId, objLock)
                    raise exceptionLogic(errorLogic.login_token_not_valid)
            else:
                raise exceptionLogic(errorLogic.client_param_invalid)
            if timeHelp.getNow() < objPlayerData.iLockEndTime:
                yield from classDataBaseMgr.getInstance(
                ).releasePlayerDataLock(strAccountId, objLock)
                raise exceptionLogic(errorLogic.player_id_invalid)
            else:
                objPlayerData.iStatus = 0
                objPlayerData.iLockStartTime = 0
                objPlayerData.iLockEndTime = 0
                objPlayerData.strLockReason = ""
                objPlayerData.iLastLoginTime = timeHelp.getNow()
                objPlayerData.strLastLoginIp = dict_param.get("srcIp", "")
                objPlayerData.strLastDeviceName = ""  #macAddr
                yield from classDataBaseMgr.getInstance().setPlayerDataByLock(
                    objPlayerData, objLock)
                # yield from update_status(strAccountId, 'ACTIVE')
            unReadNum = yield from classSqlBaseMgr.getInstance(
            ).getSysMsgUnReadNum(strAccountId)
    else:
        raise exceptionLogic(errorLogic.client_param_invalid)

    # 构造回包
    objRsp.data = cData()
    if source == "pc":
        objRsp.data.token = objPlayerData.strToken
    elif source == "app":
        objRsp.data.token = objPlayerData.strAppToken
    objRsp.data.accountId = objPlayerData.strAccountId
    objRsp.data.nick = objPlayerData.strNick
    objRsp.data.coin = "%.2f" % round(objPlayerData.iCoin / 100, 2)
    objRsp.data.headAddress = objPlayerData.strHeadAddress
    objRsp.data.unReadNum = unReadNum
    objRsp.data.phoneNum = objPlayerData.strPhone
    objRsp.data.realName = objPlayerData.strRealName
    objRsp.data.sex = objPlayerData.strSex
    objRsp.data.born = objPlayerData.strBorn
    objRsp.data.address = objPlayerData.dictAddress
    objRsp.data.userType = objPlayerData.iUserType
    objRsp.data.mac = objPlayerData.strLastDeviceName
    if objPlayerData.strTradePassword:
        objRsp.data.tradePwd = 1
    else:
        objRsp.data.tradePwd = 0
    objRsp.data.email = objPlayerData.strEmail
    objRsp.data.bankCard = objPlayerData.arrayBankCard
    #日志
    dictLogin = {
        'billType': 'loginBill',
        'accountId': objPlayerData.strAccountId,
        'agentId': objPlayerData.strAgentId,
        'loginTime': timeHelp.getNow(),
        'coin': objPlayerData.iCoin,
        'vipLevel': objPlayerData.iLevel,
        'loginDevice': objPlayerData.strLastDeviceModal,
        'loginIp': objPlayerData.strLastLoginIp,
        'vipExp': objPlayerData.iLevelValidWater,
    }
    logging.getLogger('bill').info(json.dumps(dictLogin))

    return classJsonDump.dumps(objRsp)
Пример #10
0
def handleHttp(dict_param: dict):
    """存款"""
    objRsp = cResp()

    strAccountId = dict_param.get("accountId", "")
    strToken = dict_param.get("token", "")
    strPayType = dict_param.get("payType", "")
    # iTradeType = dict_param.get("tradeType", 0)
    money = dict_param.get("money", "")
    if not all([strAccountId, strToken, money]):
        raise exceptionLogic(errorLogic.client_param_invalid)
    if cpv.checkIsString(money):
        raise exceptionLogic(errorLogic.client_param_invalid)
    fMoney = float(money)
    if not cpv.checkIsFloat(fMoney):
        raise exceptionLogic(errorLogic.client_param_invalid)
    iCoin = int(fMoney * 100)
    if not cpv.checkIsInt(iCoin):
        raise exceptionLogic(errorLogic.client_param_invalid)

    certifytoken.certify_token(strAccountId, strToken)

    objPlayerData = yield from classDataBaseMgr.getInstance().getPlayerData(strAccountId)
    if objPlayerData is None:
        raise exceptionLogic(errorLogic.player_data_not_found)
    if strToken != objPlayerData.strToken:
        raise exceptionLogic(errorLogic.login_token_not_valid)

    PayTypeList = []
    for var in constants.DEPOSIT_LIST:
        PayTypeList.append(var["desc"])

    if strPayType not in PayTypeList:
        raise exceptionLogic(errorLogic.pay_type_not_valid)

    if strPayType == enumPayType.BankTransfer:
        # 银行转账
        accountInfoList = yield from classSqlBaseMgr.getInstance().getAllBankInfo()

        objRsp.data = cData()
        objRsp.data.iCoin = "%.2f" % round(objPlayerData.iCoin / 100, 2)
        objRsp.data.iSaveCoin = "%.2f" % round(iCoin / 100, 2)
        try:
            objRsp.data.payeeCardInfo = random.choice(accountInfoList)
        except Exception as e:
            logging.error(repr(e))
            raise exceptionLogic(errorLogic.pay_channel_not_support)
        orderId=orderGeneral.generalOrderId()
        yield from generalPayOrder(orderId,"","",strAccountId,iCoin,dict_param.get("srcIp",""),"银行卡转账",
                               objRsp.data.payeeCardInfo["accountId"])

        # 构造回包
        objRsp.data.payOrder = orderId
        return classJsonDump.dumps(objRsp)

    elif strPayType == enumPayType.AlipayTransfer:
        # 支付宝转账
        accountInfoList = yield from classSqlBaseMgr.getInstance().getAllAlipayInfo()

        objRsp.data = cData()
        objRsp.data.iCoin = "%.2f" % round(objPlayerData.iCoin / 100, 2)
        objRsp.data.iSaveCoin = "%.2f" % round(iCoin / 100, 2)
        try:
            objRsp.data.payeeCardInfo = random.choice(accountInfoList)
        except Exception as e:
            logging.error(repr(e))
            raise exceptionLogic(errorLogic.pay_channel_not_support)
        orderId = orderGeneral.generalOrderId()
        yield from generalPayOrder(orderId, "","", strAccountId, iCoin, dict_param.get("srcIp", ""),
                                   "支付宝转账",objRsp.data.payeeCardInfo["accountId"])
        objRsp.data.payOrder = orderId
        return classJsonDump.dumps(objRsp)

    elif strPayType == enumPayType.WeixinTransfer:
        # 微信转账
        accountInfoList = yield from classSqlBaseMgr.getInstance().getAllWeixinInfo()

        objRsp.data = cData()
        objRsp.data.iCoin = "%.2f" % round(objPlayerData.iCoin / 100, 2)
        objRsp.data.iSaveCoin = "%.2f" % round(iCoin / 100, 2)
        try:
            objRsp.data.payeeCardInfo = random.choice(accountInfoList)
        except Exception as e:
            logging.error(repr(e))
            raise exceptionLogic(errorLogic.pay_channel_not_support)
        orderId = orderGeneral.generalOrderId()
        yield from generalPayOrder(orderId, "","", strAccountId, iCoin, dict_param.get("srcIp", ""),
                                   "微信转账",objRsp.data.payeeCardInfo["accountId"])
        objRsp.data.payOrder = orderId
        return classJsonDump.dumps(objRsp)