コード例 #1
0
    def applyBeautyCertify(cls, gameId, userId):
        status = cls.getBeautyCertifyStatus(userId)
        if status.state > BeautyCertifyStatus.STATE_VERIFYING:
            status.state = BeautyCertifyStatus.STATE_IDLE
            status.gameId = 0
        if status.state != BeautyCertifyStatus.STATE_IDLE:
            raise TyContext.FreetimeException(ERR_INVALID_STATE, '错误的状态')

        userCustomHead = UserPhotoService.getUserPhoto(
            userId, UserPhoto.PHOTO_TYPE_AVATAR)
        if not userCustomHead:
            raise TyContext.FreetimeException(ERR_NO_CUSTOM_HEAD, '没有自定义头像')

        cls.marginCollector.collect(gameId, userId)

        status.gameId = gameId
        userLifeHead = UserPhotoService.getUserPhoto(userId,
                                                     UserPhoto.PHOTO_TYPE_LIFE)
        if userLifeHead:
            newState = BeautyCertifyStatus.STATE_PHOTOED
        else:
            newState = BeautyCertifyStatus.STATE_APPLIED
        cls.updateState(status, newState)
        cls.beautyCertifyStatusDao.save(status)
        return status
コード例 #2
0
ファイル: httpuserphotov3.py プロジェクト: lordsky/hall0
 def checkHeadUpload(cls, checkAuthCode=True):
     gameId, userId = HttpUtils.checkGameRequest(checkAuthCode)
     base64Content = TyContext.RunHttp.getRequestParam('photoContent')
     if base64Content is None:
         raise TyContext.FreetimeException(1, 'Bad photoContent param')
     try:
         content = base64.b64decode(base64Content)
     except:
         raise TyContext.FreetimeException(1, 'Bad photoContent param')
     return gameId, userId, content
コード例 #3
0
 def revoke(cls, userId):
     status = cls.beautyCertifyStatusDao.load(userId)
     if status is None:
         raise TyContext.FreetimeException(ERR_REMOVED, '记录已被删除')
     if BeautyCertifyStatus.STATE_ACCEPTED != status.state:
         raise TyContext.FreetimeException(ERR_INVALID_STATE, '通过的才能撤销')
     TyContext.ftlog.info('BeautyCertifyService.revoke userId=', userId)
     cls._remove(status)
     beauty = cls.beautySignDao.getBeauty(status.userId)
     beauty &= ~BeautySignDao.BEAUTY_BIT
     cls.beautySignDao.setBeauty(userId, beauty)
コード例 #4
0
    def reject(cls, userId, reason=''):
        status = cls.beautyCertifyStatusDao.load(userId)
        if status is None:
            raise TyContext.FreetimeException(ERR_REMOVED, '记录已被删除')
        if BeautyCertifyStatus.STATE_VERIFYING != status.state:
            raise TyContext.FreetimeException(ERR_INVALID_STATE, '审核中的才能拒绝')

        TyContext.ftlog.info('BeautyCertifyService.reject userId=', userId)
        cls.updateState(status, BeautyCertifyStatus.STATE_REJECTED)
        cls.beautyCertifyStatusDao.save(status)
        return status
コード例 #5
0
    def requestVerify(cls, userId):
        status = cls.beautyCertifyStatusDao.load(userId)
        if status is None:
            raise TyContext.FreetimeException(ERR_REMOVED, '记录已被删除')
        if BeautyCertifyStatus.STATE_PHOTOED != status.state:
            raise TyContext.FreetimeException(ERR_INVALID_STATE, '还没有上传生活照')

        TyContext.ftlog.info('BeautyCertifyService.requestVerify accept=',
                             userId)
        cls.updateState(status, BeautyCertifyStatus.STATE_VERIFYING, '')
        cls.beautyCertifyStatusDao.save(status)
        return status
コード例 #6
0
 def checkGameRequest(cls, checkAuthorCode=True):
     userId = TyContext.RunHttp.getRequestParamInt('userId')
     gameId = TyContext.RunHttp.getRequestParamInt('gameId')
     if userId <= 0:
         raise TyContext.FreetimeException(1, 'Bad userId')
     if gameId <= 0:
         gameId = TyContext.RunHttp.getRequestParamInt('appId')
     if gameId <= 0:
         raise TyContext.FreetimeException(1, 'Bad gameId')
     if checkAuthorCode:
         authorCode = TyContext.RunHttp.getRequestParam('authorCode')
         if not TyContext.AuthorCode.checkUserAuthorCode(
                 userId, authorCode):
             raise TyContext.FreetimeException(1, 'Bad authorCode')
     return gameId, userId
コード例 #7
0
ファイル: httpsnsv3.py プロジェクト: lordsky/hall0
    def searchUser(cls, rpath):
        isReturn, params = cls.checkAccount(rpath)
        if isReturn:
            return params
        mo = TyContext.Cls_MsgPack()
        mo.setCmd('searchUser')

        search_uid = TyContext.RunHttp.getRequestParam('search_uid')
        if search_uid is None or search_uid == '' or not str(
                search_uid).isdigit():
            mo.setResult('code', 2)
            mo.setResult('info', '请输入正确ID')
            return cls.onResponse(mo, params)

        search_list = []
        user = Friend.getUserInfo(params['appId'], search_uid)
        if not user is None:
            search_list.append(user)
            Friend.setup_friends_game_info(search_list)

        # for user in search_list:
        #     user['level'] = 1
        #     user['level_game'] = '麻将'

        if len(search_list) == 0:
            mo.setResult('code', 2)
            mo.setResult('info', '请输入正确ID')
        else:
            mo.setResult('code', 0)
            mo.setResult('info', 'ok')
        mo.setResult('search_list', search_list)
        return cls.onResponse(mo, params)
コード例 #8
0
ファイル: httpsnsv3.py プロジェクト: lordsky/hall0
    def addFriendRequest(cls, rpath):
        isReturn, params = cls.checkAccount(rpath)
        if isReturn:
            return params
        mo = TyContext.Cls_MsgPack()
        mo.setCmd('addFriend')
        friend_uid = TyContext.RunHttp.getRequestParam('friend_uid')

        if friend_uid is None or friend_uid == '':
            mo.setResult('code', 2)
            mo.setResult('info', u"好友ID为空!")
            return cls.onResponse(mo, params)

        uid = params['userId']
        normal_user = cls._checkNormalAccount(uid)
        if normal_user == 0:
            mo.setResult('code', 109)
            mo.setResult('info', Friend.err_codes[109])
            # return mo   todo

        friend_uids = friend_uid.split(',')
        TyContext.ftlog.debug('friend_uids', friend_uids)

        if len(friend_uids) == 1:
            Friend.addFriendRequest(params['appId'], params['clientId'],
                                    params['userId'], friend_uid, mo)
        else:
            for fid in friend_uids:
                Friend.addFriendRequest(params['appId'], params['clientId'],
                                        params['userId'], fid, None)

            TyContext.ftlog.debug('friend_uids....')
            mo.setResult('code', 0)
            mo.setResult('info', u"好友请求发送成功!")
        return cls.onResponse(mo, params)
コード例 #9
0
ファイル: httpsnsv3.py プロジェクト: lordsky/hall0
    def confirmFriendRequest(cls, rpath):
        isReturn, params = cls.checkAccount(rpath)
        if isReturn:
            return params
        mo = TyContext.Cls_MsgPack()
        mo.setCmd('confirmFriendRequest')
        friend_uid = TyContext.RunHttp.getRequestParam('friend_uid')
        isAgree = TyContext.RunHttp.getRequestParamInt('is_agree', 0)
        if friend_uid is None or friend_uid == '':
            mo.setResult('code', 2)
            mo.setResult('info', u"好友ID为空!")
            return cls.onResponse(mo, params)

        friend_uids = friend_uid.split(',')
        if len(friend_uids) == 1:
            Friend.confirmFriendRequest(params['appId'], params['userId'],
                                        friend_uid, isAgree, mo)
            return cls.onResponse(mo, params)

        for friend_uid in friend_uids:
            ret = Friend.confirmFriendRequest(params['appId'],
                                              params['userId'], friend_uid,
                                              isAgree, mo)
            if not ret:
                break

        mo.setResult('code', 0)
        mo.setResult('info', "ok")
        return cls.onResponse(mo, params)
コード例 #10
0
 def doPayRequestCard(self, mi):
     chargeInfo = self.get_charge_info(mi)
     mo = TyContext.Cls_MsgPack()
     status = TuYouPayYeeV4.doPayRequestCard(chargeInfo, mi, mo)
     mo.setResult('chargeinfo', chargeInfo)
     mo.setResult('code', status)
     return self.return_mo(0, chargeInfo=chargeInfo)
コード例 #11
0
ファイル: httpsnsv3.py プロジェクト: lordsky/hall0
    def readyInviteFriend(cls, rpath):
        isReturn, params = cls.checkAccount(rpath)
        if isReturn:
            return params
        mo = TyContext.Cls_MsgPack()
        invite_type = TyContext.RunHttp.getRequestParam('invite_type')
        productName = TyContext.RunHttp.getRequestParam('productName')
        uid = params['userId']
        gameId = params['appId']  # todo
        subGameId = TyContext.RunHttp.getRequestParamInt('subGameId', 6)

        gameName, url = Friend.getGameNameAndUrl(subGameId, params['clientId'])
        if not productName:
            productName = gameName

        normal_user = 1
        if invite_type == 'sms':
            msg = "我在玩 " + productName + ",等你哦,不见不散!点此下载:" + url
            normal_user = cls._checkNormalAccount(uid)
        else:
            msg = "我在玩 " + productName + ",等你哦,不见不散!我的id是" + str(uid) + ", " \
                                                                        "在游戏中添加我为好友,一起玩吧~ 点击下载"
        code = 0
        if normal_user == 0:
            code = 1
        mo.setResult('code', code)
        mo.setResult('url', url)
        mo.setResult('content', msg)
        mo.setResult('info', "ok")
        return cls.onResponse(mo, params)
コード例 #12
0
ファイル: payyee.py プロジェクト: lordsky/hall0
    def getPayResult(self, ret, datas):

        r0_Cmd = "";  # 业务类型
        r1_Code = "";  # 支付结果
        r2_TrxId = "";  # 易宝支付交易流水号
        r6_Order = "";  # 商户订单号
        rq_ReturnMsg = "";  # 返回信息
        rethmac = "";  # 签名数据
        unkonw = "";  # 未知错误
        result = ret.split("\n")
        for data in result:
            dsp = data.split('=')
            if len(dsp) != 2:
                continue
            sKey, Svalue = dsp
            if sKey == 'r0_Cmd':
                r0_Cmd = Svalue
            elif sKey == 'r1_Code':
                r1_Code = Svalue
            elif sKey == 'r2_TrxId':
                r2_TrxId = Svalue
            elif sKey == 'r6_Order':
                r6_Order = Svalue
            elif sKey == 'rq_ReturnMsg':
                rq_ReturnMsg = Svalue
            elif sKey == 'hmac':
                rethmac = Svalue
            else:
                unkonw = Svalue

        mo = TyContext.Cls_MsgPack()
        mo.setResult('r0_Cmd', r0_Cmd)
        mo.setResult('r1_Code', r1_Code)
        mo.setResult('r2_TrxId', r2_TrxId)
        mo.setResult('r6_Order', r6_Order)
        mo.setResult('rq_ReturnMsg', rq_ReturnMsg)
        mo.setResult('unkonw', unkonw)

        sbOld = str(r0_Cmd) + str(r1_Code) + str(r6_Order) + str(rq_ReturnMsg)
        hmacStr = self.getHmacString(sbOld)

        if (rethmac == hmacStr):
            if r1_Code == '1':
                info = '提交成功!'
                from tysdk.entity.pay.pay import TuyouPay
                TuyouPay.makeBuyChargeMessage(mo, datas)
            elif r1_Code == '2':
                info = '充值交易失败,卡密成功处理过或者提交卡号过于频繁'
            elif r1_Code == '11':
                info = '充值交易失败,订单号重复'
            elif r1_Code == '66':
                info = '充值交易失败,支付金额有误'
            else:
                info = '充值交易失败,请检查后重新测试支付'
        else:
            info = '充值交易失败,' + rq_ReturnMsg

        info = info.decode('utf-8')
        mo.setResult('info', info)
        return mo
コード例 #13
0
 def doGetUserInfo(cls, rpath):
     isReturn, params = AccountCheck.normal_check(rpath)
     if isReturn:
         return params
     mo = TyContext.Cls_MsgPack()
     AccountInfo.doGetUserInfo(params, mo)
     return mo
コード例 #14
0
ファイル: http.py プロジェクト: lordsky/hall0
 def convertToMsgPack(self, keys):
     msg = TyContext.MsgPack()
     for key in keys:
         value = self.getRequestParam(key)
         if value != None:
             msg.setParam(key, value)
     return msg
コード例 #15
0
ファイル: httpupgradev3.py プロジェクト: lordsky/hall0
 def doNicai(cls, rpath):
     code = TyContext.RunHttp.getRequestParam('code', '0')
     rcode = TyContext.strutil.tydes_encode(code)
     mo = TyContext.Cls_MsgPack()
     mo.setCmd('nicai')
     mo.setResult('code', rcode)
     return mo
コード例 #16
0
 def doLoginByMobile(cls, rpath):
     isReturn, params = AccountCheck.login_check(rpath, 2)
     if isReturn:
         return params
     mo = TyContext.Cls_MsgPack()
     AccountLogin.doLoginByMobile(params, mo)
     return mo
コード例 #17
0
ファイル: paytuyou.py プロジェクト: lordsky/hall0
 def payCardRequest(self, rparam, datas):
     cardUrl = TuyouPayTuyou.szf_url + '?' + self.createLinkString4Get(
         rparam)
     TyContext.ftlog.info('TuYouPayTuyou->requestUrl=', cardUrl)
     response, cardUrl = TyContext.WebPage.webget(cardUrl)
     TyContext.ftlog.info('TuYouPayTuyou->requestUrl=', cardUrl,
                          'response=', response)
     status = 0
     try:
         status = int(response)
     except:
         status = 0
     mo = TyContext.Cls_MsgPack()
     from tysdk.entity.pay.pay import TuyouPay
     if status == 200:
         TuyouPay.makeBuyChargeMessage(mo, datas)
     else:
         mo.setResult('code', 1)
         mo.setResult('tuyou.card.code', status)
         info = ''
         if status in TuyouPayTuyou.szf_request_code:
             info = TuyouPayTuyou.szf_request_code[status]
         else:
             info = '充值卡支付失败'
         info = info.decode('utf-8')
         mo.setResult('info', info)
     return mo
コード例 #18
0
    def doSetForbidden(cls, rpath):
        '''设置禁止登录用户'''
        mo = TyContext.Cls_MsgPack()
        lock_users = TyContext.RunHttp.getRequestParam('lock_users', '[]')
        unlock_users = TyContext.RunHttp.getRequestParam('unlock_users', '[]')

        try:
            locked = json.loads(lock_users)
            unlocked = json.loads(unlock_users)
        except:
            mo.setResult('code', 1)
            mo.setResult('info', 'error args')
            return mo

        byid = TyContext.RunHttp.getRequestParam('byid', 'userId')
        TyContext.ftlog.debug('doSetForbidden byid', byid, 'locked', locked,
                              'unlocked', unlocked)
        if byid == 'userId':
            return cls._set_forbidden_ids('forbidden:uid:', locked, unlocked, locked, mo, 100)
        elif byid == 'clientId':
            return cls._set_forbidden_ids('forbidden:cid:', locked, unlocked, locked, mo)
        elif byid == 'deviceId':
            lock_users = []
            for devid in locked:
                userid = AccountLogin.__find_userid_by_devid_map_v3__(devid)
                if userid > 0:
                    lock_users.append(userid)
            return cls._set_forbidden_ids('forbidden:devid:', locked, unlocked, lock_users, mo)
コード例 #19
0
    def doSetPasswd(cls, rpath):
        isReturn, params = AccountCheck.normal_check(rpath)
        if isReturn:
            return params

        # 获取玩家修改密码次数
        userId = params['userId']
        changePwdCount = TyContext.RedisUser.execute(userId, 'HGET', 'user:'******'changePwdCount')
        #         TyContext.ftlog.info(cls.__name__, 'doSetPasswd->changePwdCount=', changePwdCount)
        if changePwdCount == None:
            changePwdCount = 0
        if int(changePwdCount) > 0:
            isReturn, oldpasswd = AccountCheck.check_param_password(rpath, 'oldpasswd')
            if isReturn:
                return oldpasswd
            params['oldpasswd'] = oldpasswd

        isReturn, newpasswd = AccountCheck.check_param_password(rpath, 'newpasswd', isSet=True)
        if isReturn:
            return newpasswd
        params['newpasswd'] = newpasswd

        mo = TyContext.Cls_MsgPack()
        AccountInfo.doSetPasswd(params, mo)
        return mo
コード例 #20
0
    def doSetUserAvatar(cls, rpath):
        isReturn, params = AccountCheck.normal_check(rpath)
        if isReturn:
            return params

        url = TyContext.RunHttp.getRequestParam('url', '').strip()
        data = TyContext.RunHttp.getRequestParam('data', '')
        mo = TyContext.Cls_MsgPack()

        is_url_error = len(url) > 0 and (len(url) > 125 or url.find('"') >= 0 or url.find("'") >= 0)
        if (len(url) == 0 and len(data) == 0) or is_url_error:
            mo.setResult('code', 1)
            mo.setResult('info', '输入参数错误')
            return mo
        if len(data) > 0:
            try:
                data = base64.b64decode(data)
            except:
                mo.setResult('code', 1)
                mo.setResult('info', '图像数据错误')
                return mo
        params['url'] = url
        params['data'] = data
        AccountInfo.doSetUserAvatar(params, mo)
        return mo
コード例 #21
0
ファイル: httpsnsv3.py プロジェクト: lordsky/hall0
    def setScore(cls, rpath):
        appId = TyContext.RunHttp.getRequestParamInt('appId', 0)
        score = TyContext.RunHttp.getRequestParamInt('score', 0)
        userId = TyContext.RunHttp.getRequestParamInt('userId', 0)
        infos = TyContext.RunHttp.getRequestParam(
            'infos', '')  # user extra infos json string

        mo = TyContext.Cls_MsgPack()
        mo.setCmd('setScore')

        if score == 0:
            mo.setResult('code', 1)
            mo.setResult('info', 'score is zero')
            return mo

        rankName = TyContext.RunHttp.getRequestParam('rank_name', 'week_score')
        key = 'rank_scores:' + str(appId) + ":" + str(rankName) + ':' + str(
            userId)

        ret = TyContext.RedisUser.execute(userId, 'hmset', key, 'score',
                                          str(score), 'infos', infos)
        if ret:
            td = datetime.datetime.today()
            seconds = (7 - td.weekday()
                       ) * 86400 - td.hour * 3600 - td.minute * 60 - td.second
            TyContext.RedisUser.execute(userId, 'EXPIRE', key, seconds)
            mo.setResult('code', 0)
            mo.setResult('info', 'success')
        else:
            mo.setResult('code', 1)
            mo.setResult('info', 'fail')
        # TyContext.ftlog.info(cls.__name__, 'mo->', mo.packJson())
        return mo
コード例 #22
0
 def doRenewAuthorCodeByTyId(cls, rpath):
     isReturn, params = AccountCheck.login_check(rpath, 3)
     if isReturn:
         return params
     mo = TyContext.Cls_MsgPack()
     AccountLogin.doRenewAuthorCodeByTyId(params, mo)
     return mo
コード例 #23
0
ファイル: httpsnsv3.py プロジェクト: lordsky/hall0
 def crossReward(cls, rpath):
     userId = TyContext.RunHttp.getRequestParam('userId')
     appId = TyContext.RunHttp.getRequestParam('appId')
     Cross.reward(userId, appId)
     mo = TyContext.Cls_MsgPack()
     mo.setResult('code', 0)
     return mo
コード例 #24
0
    def _default_charge_data_func(cls, chargeinfo):
        userId = chargeinfo['uid']
        buttonId = chargeinfo['buttonId']
        clientId = chargeinfo['clientId']
        chargetype = chargeinfo['chargeType']
        clientip = TyContext.UserSession.get_session_client_ip(userId)

        from tysdk.entity.pay_common.fengkong import Fengkong
        if Fengkong.is_ip_limited(clientip, clientId, chargetype):
            raise TyContext.FreetimeException(
                1, '对不起,您已超出支付限制,请联系客服4008-098-000')

        paycodes = TyContext.Configure.get_global_item_json('paycodes',
                                                            clientid=clientId)
        try:
            pdata = paycodes[chargetype]['paydata']
        except Exception as e:
            TyContext.ftlog.error('paycodes', paycodes, 'config error for',
                                  clientId, 'buttonId', buttonId)
            raise
        for data in pdata:
            if data['prodid'] == buttonId:
                break
        else:
            raise Exception('product %s not found in paycodes(%s) config'
                            % (buttonId, clientId))
        cdata = copy.deepcopy(data)
        del cdata['prodid']
        chargeinfo['chargeData'] = cdata
コード例 #25
0
ファイル: http.py プロジェクト: lordsky/hall0
 def notifyItemListChange(self, gameId, userId):
     mo = TyContext.MsgPack()
     mo.setCmd('item_list')
     mo.setParam('userId', userId)
     mo.setParam('gameId', gameId)
     self.msg = mo
     self.sendUdpToServerType(mo, userId, 3)
コード例 #26
0
 def doCreateAccount(cls, rpath):
     isReturn, params = AccountCheck.login_check(rpath, 7)
     if isReturn:
         return params
     mo = TyContext.Cls_MsgPack()
     AccountLogin.doCreateAccount(params, mo)
     return mo
コード例 #27
0
ファイル: httpupgradev3.py プロジェクト: lordsky/hall0
    def doGetUpdataInfo(cls, rpath):
        gameid = TyContext.RunHttp.getRequestParamInt('gameId')
        clientid = TyContext.RunHttp.getRequestParam('clientId')
        upversion = TyContext.RunHttp.getRequestParamInt('updateVersion')

        mo = TyContext.Cls_MsgPack()
        mo.setCmd('getUpdateInfo')

        if gameid == 0 or clientid == None:
            mo.setError(2, '参数错误')
            return mo

        TyContext.ftlog.debug('doGetUpdataInfo', gameid, clientid, upversion)
        verinfo = GameIncUpdate.instance().getNeedUpdateVersion(gameid, clientid, upversion)
        if verinfo:
            mo.setResult('gameId', gameid)
            mo.setResult('clientId', clientid)
            mo.setResult('updateVersion', verinfo._id)
            if verinfo._force == '1':
                mo.setResult('updateType', 'force')
            else:
                mo.setResult('updateType', 'optional')
            mo.setResult('updateSize', verinfo._size)
            mo.setResult('updateUrl', verinfo._path)
            mo.setResult('updateDes', verinfo._des)
            mo.setResult('jsMD5', verinfo._md5)
        else:
            mo.setError(1, '无可用更新')
        return mo
コード例 #28
0
def _check_prod_price(mi):
    try:
        prodId = mi.getParamStr('prodId')
        prodPrice = mi.getParamFloat('prodPrice')

        defPrice = -1
        if prodId.startswith("TY"):
            lpid = len(prodId)
            if lpid >= 12:
                if prodId[6] == 'D' or prodId[6] == 'R':
                    defPrice = float(prodId[7:12])
        if defPrice >= 0:
            if prodPrice < defPrice * 0.8:
                TyContext.ftlog.info('CHECK_PROD_PRICE ERROR prodId=', prodId,
                                     'defPrice=', defPrice, 'prodPrice=',
                                     prodPrice, mi)
                mo = TyContext.Cls_MsgPack()
                mo.setCmd('consume')
                mo.setError(2, '商品信息错误,请重新购买')
                return mo
            else:
                TyContext.ftlog.info('CHECK_PROD_PRICE OK prodId=', prodId,
                                     'defPrice=', defPrice, 'prodPrice=',
                                     prodPrice, mi)
        else:
            TyContext.ftlog.info('CHECK_PROD_PRICE NG prodId=', prodId,
                                 'defPrice=', defPrice, 'prodPrice=',
                                 prodPrice, mi)
    except Exception, e:
        TyContext.ftlog.error('CHECK_PROD_PRICE', e)
コード例 #29
0
ファイル: httpupgradev3.py プロジェクト: lordsky/hall0
    def doAddVersion(cls, rpath):
        gameId = TyContext.RunHttp.getRequestParamInt('gameId')
        md5 = TyContext.RunHttp.getRequestParam('md5')
        size = TyContext.RunHttp.getRequestParam('size')
        path = TyContext.RunHttp.getRequestParam('path')
        des = TyContext.RunHttp.getRequestParam('des')
        force = TyContext.RunHttp.getRequestParam('force')

        mo = TyContext.Cls_MsgPack()
        if not (md5 and size and path and des and force):
            mo.setResult('code', 1)
            mo.setResult('info', 'args error')
            return mo

        vermnr = GameIncUpdateConfiger.instance().find_vers_mnr(gameId)
        if vermnr == None:
            mo.setResult('code', 2)
            mo.setResult('info', 'error gameId')
            return mo

        id = vermnr.generateId()
        ver = Version(id, md5, size, path, des, force)

        if vermnr.addVersion(ver):
            mo.setResult('version', ver.generateToManager())
            vermnr.save()
        else:
            mo.setResult('code', 3)
            mo.setResult('info', 'add error')
        return mo
コード例 #30
0
    def doYoukuVipCallback(cls, rpath):
        mo = TyContext.Cls_MsgPack()

        config = TyContext.Configure.get_global_item_json('youkuh5_config', {})
        paykey = config.get('payKey')
        # qid=50469470&grade=1&vip_center_id=youkutest1011&sign=7439fb6fa5f82104c107648e9ac77d76

        qid = TyContext.RunHttp.getRequestParam('qid', '')
        grade = TyContext.RunHttp.getRequestParam('grade', '')
        vip_center_id = TyContext.RunHttp.getRequestParam('vip_center_id', '')
        sign = TyContext.RunHttp.getRequestParam('sign', '')
        if qid == '' or grade == '' or vip_center_id == '':
            return 0

        TyContext.ftlog.info('youku_vip_charge_callback', qid, grade,
                             vip_center_id, sign)

        sign_str = "%s%s%s%s" % (qid, grade, vip_center_id, paykey)
        from hashlib import md5
        m = md5()
        m.update(sign_str)
        my_sign = m.hexdigest()
        TyContext.ftlog.debug('youku_vip_charge_callback my_sign', my_sign,
                              sign)

        if not my_sign or my_sign != sign:
            mo.setResult('code', 1)
            mo.setResult('info', 'sign error')
            return 0

        sns_id = 'youkuh5:' + str(qid)
        uid = TyContext.RedisUserKeys.execute('GET', 'snsidmap:' + sns_id)

        cls.notify_game_server_on_vip_change(uid, vip_center_id, grade)
        return 1