Пример #1
0
    def POST(self):
        params = web.input()
        session_id = params.session_id
        userid = int(params.userid)
        device_id = params.device_id
        token = params.token
        sms_code = params.sms_code

        if not SessionManager.instance().check_session(session_id, device_id,
                                                       userid):
            resp = {'res': 401, 'msg': '登陆态异常'}
            return json.dumps(resp, ensure_ascii=False)

        ret = SMSCenter.instance().check_sms(token, sms_code)
        if ret is None:
            logger.info('check sms code failed!! token:%s, code:%s' %
                        (token, sms_code))
            resp = {'res': 1, 'msg': 'error'}
        else:
            action, data = ret
            #修改状态
            SMSCenter.instance().update_status(token, SMSStatus.SMS_CONFIRMED)

            if action != SMSAction.BIND_PHONE:
                resp = {'res': 1, 'msg': 'error'}
            else:
                resp = self.apply_bind_phone(json.loads(data))

                if resp['res'] == 0:
                    if userid == 0:
                        #绑定成功,需要进行帐号迁移
                        userid = resp['userid']
                        r = self.activate_account(userid, device_id)
                        if r['rtn'] == 0:
                            resp['balance'] = r['balance']
                            resp['income'] = r['income']
                            resp['outgo'] = r['outgo']
                            resp['shared_income'] = r['shared_income']

                        #修改cache中的userid
                        SessionManager.instance().update_session(
                            session_id, device_id, userid)
                    else:
                        #查询余额
                        r = self.query_balance(userid, device_id)
                        if r['rtn'] == 0:
                            resp['balance'] = r['balance']
                            resp['income'] = r['income']
                            resp['outgo'] = r['outgo']
                            resp['shared_income'] = r['shared_income']

        return json.dumps(resp)
    def POST(self):
        params = web.input()
        session_id = params.session_id
        userid = int(params.userid)
        device_id = params.device_id
        token = params.token
        sms_code = params.sms_code

        if not SessionManager.instance().check_session(session_id, device_id, userid):
            resp = {'res':401, 'msg':'登陆态异常'}
            return json.dumps(resp, ensure_ascii=False)

        ret = SMSCenter.instance().check_sms(token, sms_code)
        if ret is None:
            logger.info('check sms code failed!! token:%s, code:%s' %(token, sms_code))
            resp = {'res': 1, 'msg': 'error'}
        else:
            action, data = ret
            #修改状态
            SMSCenter.instance().update_status(token, SMSStatus.SMS_CONFIRMED)
            
            if action != SMSAction.BIND_PHONE:
                resp = {'res': 1, 'msg': 'error'}
            else:
                resp = self.apply_bind_phone(json.loads(data))

                if resp['res'] == 0:
                    if userid == 0:
                        #绑定成功,需要进行帐号迁移
                        userid = resp['userid']
                        r = self.activate_account(userid, device_id)
                        if r['rtn'] == 0:
                            resp['balance'] = r['balance']
                            resp['income'] = r['income']
                            resp['outgo'] = r['outgo']
                            resp['shared_income'] = r['shared_income']

                        #修改cache中的userid
                        SessionManager.instance().update_session(session_id, device_id, userid)
                    else:
                        #查询余额
                        r = self.query_balance(userid, device_id)
                        if r['rtn'] == 0:
                            resp['balance'] = r['balance']
                            resp['income'] = r['income']
                            resp['outgo'] = r['outgo']
                            resp['shared_income'] = r['shared_income']
                            
        return json.dumps(resp)
Пример #3
0
    def GET(self):
        params = web.input()

        if not SessionManager.instance().check_session(
                params.session_id, params.device_id, int(params.userid)):
            resp = {'res': 401, 'msg': '登陆态异常'}
            return json.dumps(resp, ensure_ascii=False)

        data = {'device_id': params.device_id, 'userid': int(params.userid)}
        url = 'http://' + ACCOUNT_BACKEND + '/user_info?' + urllib.urlencode(
            data)

        r = http_request(url)
        if r.has_key('rtn') and r['rtn'] == 0:
            resp = {
                'res': 0,
                'msg': '',
                'userid': int(r['userid']),
                'phone': r['phone_num'],
                #                'nickname': r['nickname'],
                'sex': int(r['sex']),
                'age': int(r['age']),
                'interest': r['interest']
            }
        else:
            resp = {'res': 1, 'msg': 'error'}

        return json.dumps(resp)
Пример #4
0
    def GET(self):
        req  = protocol.ReportPollReq(web.input(), web.cookies())
        resp = protocol.ReportPollResp()

        if not SessionManager.instance().check_session(req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        data = {
            'userid': req.userid,
            'device_id': req.device_id
        }

        url = 'http://' + BILLING_BACKEND + '/query_balance?' + urllib.urlencode(data)

        logger.debug('[POLL] billing request, url = %s' %(url))

        r = http_request(url)

        if r['rtn'] == 0:
            resp.res = 0
            resp.msg = '成功'
            resp.offerwall_income = r['offerwall_income']
        else:
            resp.res = 589
            resp.msg = '查询余额错误'
            return resp.dump_json()

        return resp.dump_json()
    def POST(self):
        req = protocol.ResendSmsCodeReq(web.input(), web.cookies())
        resp = protocol.ResendSmsCodeResp()

        if not SessionManager.instance().check_session(req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        sms = SMSCenter.instance()

        item = sms.find_item(req.token)
        if item is None:
            resp.res = 1
            resp.msg = 'error'
            return resp.dump_json()
            
        sms_code = sms.gen_sms_code(req.code_len)
        logger.debug('new sms code: %s' %sms_code)

        sms.update_sms_code(req.token, sms_code)

        ret = sms.send_sms_code(item['phone_num'], sms_code)
        if ret:
            sms.update_status(req.token, SMSStatus.SMS_SUCC)
            resp.token = req.token
        else:
            sms.update_status(req.token, SMSStatus.SMS_FAIL)
            resp.res = 1
            resp.msg = 'error'

        return resp.dump_json()
    def POST(self):
        req  = protocol.ExchangeCodeReq(web.input(), web.cookies())
        resp = protocol.ExchangeCodeResp()

        if not SessionManager.instance().check_session(req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        #userid不能为0
        if req.userid == 0:
            resp.res = 1
            return resp.dump_json()

        if req.exchange_type == 1:
            rtn, sn, code = self.get_exchange_code_jingdong(req.userid, req.device_id)
        elif req.exchange_type == 2:
            rtn, sn, code = self.get_exchange_code_xlvip(req.userid, req.device_id)
        else:
            resp.res = 1
            return resp.dump_json()

        if rtn != 0:
            resp.res = rtn
            return resp.dump_json()

        #成功,发送短信
        self.notify_exchange_code(req.userid, req.device_id, req.exchange_type, code)
        
        resp.order_id = sn
        resp.exchange_code = code
        return resp.dump_json()
Пример #7
0
    def POST(self):
        req = protocol.ResendSmsCodeReq(web.input(), web.cookies())
        resp = protocol.ResendSmsCodeResp()

        if not SessionManager.instance().check_session(
                req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        sms = SMSCenter.instance()

        item = sms.find_item(req.token)
        if item is None:
            resp.res = 1
            resp.msg = 'error'
            return resp.dump_json()

        sms_code = sms.gen_sms_code(req.code_len)
        logger.debug('new sms code: %s' % sms_code)

        sms.update_sms_code(req.token, sms_code)

        ret = sms.send_sms_code(item['phone_num'], sms_code)
        if ret:
            sms.update_status(req.token, SMSStatus.SMS_SUCC)
            resp.token = req.token
        else:
            sms.update_status(req.token, SMSStatus.SMS_FAIL)
            resp.res = 1
            resp.msg = '短信发送数量已超过限额'

        return resp.dump_json()
    def GET(self):
        params = web.input()

        if not SessionManager.instance().check_session(params.session_id, params.device_id, int(params.userid)):
            resp = {'res':401, 'msg':'登陆态异常'}
            return json.dumps(resp, ensure_ascii=False)

        data = {'device_id': params.device_id, 'userid': int(params.userid)}
        url = 'http://' + ACCOUNT_BACKEND + '/user_info?' + urllib.urlencode(data)

        r = http_request(url)
        if r.has_key('rtn') and r['rtn'] == 0:
            resp = {
                'res': 0,
                'msg': '',
                'userid': int(r['userid']),
                'phone': r['phone_num'],
#                'nickname': r['nickname'],
                'sex': int(r['sex']),
                'age': int(r['age']),
                'interest': r['interest']
            }
        else:
            resp = {'res': 1, 'msg': 'error'}

        return json.dumps(resp)
Пример #9
0
    def POST(self):
        req = protocol.CheckInReq(web.input(), web.cookies())
        resp = protocol.CheckInResp()

        if not SessionManager.instance().check_session(
                req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        data = {'userid': req.userid, 'device_id': req.device_id}

        url = 'http://' + TASK_BACKEND + '/check-in'

        r = http_request(url, data)
        if r['rtn'] == 0:
            resp.award = r['award']
        elif r['rtn'] == 1:
            resp.res = 1
            resp.msg = '您今天已抽奖,明天再来试试运气吧!'
        else:
            resp.res = 1
            resp.msg = 'error'

        return resp.dump_json()
Пример #10
0
    def POST(self):
        req  = protocol.CheckInReq(web.input(), web.cookies())
        resp = protocol.CheckInResp()

        if not SessionManager.instance().check_session(req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        data = {
            'userid': req.userid,
            'device_id': req.device_id
        }

        url = 'http://' + TASK_BACKEND + '/check-in'

        r = http_request(url, data)
        if r['rtn'] == 0:
            resp.award = r['award']
        elif r['rtn'] == 1:
            resp.res = 1
            resp.msg = '您今天已抽奖,明天再来试试运气吧!'
        else:
            resp.res = 1
            resp.msg = 'error'
        
        return resp.dump_json()
Пример #11
0
    def POST(self):
        req = protocol.UpdateInviterReq(web.input(), web.cookies())
        resp = protocol.UpdateInviterResp()

        if not SessionManager.instance().check_session(
                req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        url = 'http://' + ACCOUNT_BACKEND + '/update_inviter'
        data = {
            'device_id': req.device_id,
            'userid': req.userid,
            'invite_code': req.inviter.upper()
        }

        r = http_request(url, data)
        if r['rtn'] == 2:
            resp.res = 1
            resp.msg = '不能邀请自己'
            return resp.dump_json()
        elif r['rtn'] != 0:
            resp.res = 1
            resp.msg = '邀请码错误'
            return resp.dump_json()

        inviter_id = int(r['inviter'])

        #在任务系统进行记录
        url = 'http://' + TASK_BACKEND + '/report_invite'
        data = {
            'userid': inviter_id,
            'invite_code': req.inviter,
            'invitee': req.userid
        }

        r = http_request(url, data)
        if r['rtn'] == 0:
            return resp.dump_json()
        else:
            resp.res = 1
            resp.msg = 'error'
            return resp.dump_json()
    def POST(self):
        req = protocol.UpdateInviterReq(web.input(), web.cookies())
        resp = protocol.UpdateInviterResp()

        if not SessionManager.instance().check_session(req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        url = 'http://' + ACCOUNT_BACKEND + '/update_inviter'
        data = {
            'device_id': req.device_id,
            'userid': req.userid,
            'invite_code': req.inviter.upper()
        }

        r = http_request(url, data)
        if r['rtn'] == 2:
            resp.res = 1
            resp.msg = '不能邀请自己'
            return resp.dump_json()
        elif r['rtn'] != 0:
            resp.res = 1
            resp.msg = 'error'
            return resp.dump_json()
            
        inviter_id = int(r['inviter'])

        #在任务系统进行记录
        url = 'http://' + TASK_BACKEND + '/report_invite'
        data = {
            'userid': inviter_id,
            'invite_code': req.inviter,
            'invitee': req.userid
        }

        r = http_request(url, data)
        if r['rtn'] == 0:
            return resp.dump_json()
        else:
            resp.res = 1
            resp.msg = 'error'
            return resp.dump_json()
Пример #13
0
    def POST(self):
        req = protocol.ReportCommentReq(web.input(), web.cookies())
        resp = protocol.ReportCommentResp()

        if not SessionManager.instance().check_session(
                req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        url = 'http://' + TASK_BACKEND + '/report_comment'
        data = {'userid': req.userid, 'device_id': req.device_id}

        r = http_request(url, data)
        if r['rtn'] == 0:
            resp.income = r.get('income', 0)
        else:
            resp.res = 1
            resp.msg = 'error'

        return resp.dump_json()
Пример #14
0
    def POST(self):
        logger = logging.getLogger('root')
        params = web.input()
        session_id = params.session_id
        device_id = params.device_id
        userid = int(params.userid)
        phone_num = params.phone

        if not SessionManager.instance().check_session(session_id, device_id,
                                                       userid):
            resp = {'res': 401, 'msg': '登陆态异常'}
            return json.dumps(resp, ensure_ascii=False)

        data = {
            'userid': int(params.userid),
            'device_id': params.device_id,
            'phone': params.phone
        }

        logger.debug('userid: ' + params.userid)
        logger.debug('device_id: ' + params.device_id)
        logger.debug('phone: ' + params.phone)

        sms = SMSCenter.instance()

        #创建短信任务,写数据库
        token, code = sms.create_sms_task(phone_num, SMSAction.BIND_PHONE,
                                          json.dumps(data))

        #发送短信
        ret = sms.send_sms_code(phone_num, code)
        if ret:
            sms.update_status(token, SMSStatus.SMS_SUCC)
            resp = {'res': 0, 'msg': '', 'token': token}
        else:
            sms.update_status(token, SMSStatus.SMS_FAIL)
            resp = {'res': 1, 'msg': 'error'}

        return json.dumps(resp)
Пример #15
0
    def POST(self):
        req = protocol.ReportOfferWallPointReq(web.input(), web.cookies())
        resp = protocol.ReportOfferWallPointResp()

        logger.debug(
            "domob point: %d, youmi point: %d, userid:%d, device_id:%s"
            % (req.domob_point, req.youmi_point, req.userid, req.device_id)
        )

        if not SessionManager.instance().check_session(req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = "登陆态异常"
            return resp.dump_json()

        if req.userid != 0:
            inviter = self.query_inviter(req.userid)
        else:
            inviter = 0

        if req.domob_point > 0:
            income = self.report_domob_point(req.userid, req.device_id, inviter, req.domob_point)
            if income < 0:
                logger.error("report_domob_point failed!! rtn:%d" % income)
                resp.res = -income
                resp.msg = "report_domob_point failed!!"
                return resp.dump_json()
            resp.income += income

        if req.youmi_point > 0:
            income = self.report_youmi_point(req.userid, req.device_id, inviter, req.youmi_point)
            if income < 0:
                logger.error("report_youmi_point failed!! rtn:%d" % income)
                resp.res = -income
                resp.msg = "report_youmi_point failed!!"
                return resp.dump_json()
            resp.income += income

        return resp.dump_json()
Пример #16
0
    def POST(self):
        req = protocol.ReportCommentReq(web.input(), web.cookies())
        resp = protocol.ReportCommentResp()

        if not SessionManager.instance().check_session(req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()
            
        url = 'http://' + TASK_BACKEND + '/report_comment'
        data = {
            'userid': req.userid,
            'device_id': req.device_id
        }

        r = http_request(url, data)
        if r['rtn'] == 0:
            resp.income = r.get('income', 0)
        else:
            resp.res = 1
            resp.msg = 'error'

        return resp.dump_json()
Пример #17
0
    def POST(self):
        logger = logging.getLogger('root')
        params = web.input()
        session_id = params.session_id
        device_id = params.device_id
        userid = int(params.userid)
        phone_num = params.phone

        if not SessionManager.instance().check_session(session_id, device_id, userid):
            resp = {'res':401, 'msg':'登陆态异常'}
            return json.dumps(resp, ensure_ascii=False)

        data = {
            'userid': int(params.userid),
            'device_id': params.device_id,
            'phone': params.phone
        }

        logger.debug('userid: ' + params.userid )
        logger.debug('device_id: ' + params.device_id)
        logger.debug('phone: ' + params.phone)

        sms = SMSCenter.instance()

        #创建短信任务,写数据库
        token, code = sms.create_sms_task(phone_num, SMSAction.BIND_PHONE, json.dumps(data))
        
        #发送短信
        ret = sms.send_sms_code(phone_num, code)
        if ret:
            sms.update_status(token, SMSStatus.SMS_SUCC)
            resp = {'res': 0, 'msg': '', 'token': token}
        else:
            sms.update_status(token, SMSStatus.SMS_FAIL)
            resp = {'res': 1, 'msg': 'error'}

        return json.dumps(resp)
Пример #18
0
    def POST(self):
        req = protocol.ExchangeCodeReq(web.input(), web.cookies())
        resp = protocol.ExchangeCodeResp()

        if not SessionManager.instance().check_session(
                req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        #userid不能为0
        if req.userid == 0:
            resp.res = 1
            return resp.dump_json()

        if req.exchange_type == 1:
            rtn, sn, code = self.get_exchange_code_jingdong(
                req.userid, req.device_id)
        elif req.exchange_type == 2:
            rtn, sn, code = self.get_exchange_code_xlvip(
                req.userid, req.device_id)
        else:
            resp.res = 1
            return resp.dump_json()

        if rtn != 0:
            resp.res = rtn
            return resp.dump_json()

        #成功,发送短信
        self.notify_exchange_code(req.userid, req.device_id, req.exchange_type,
                                  code)

        resp.order_id = sn
        resp.exchange_code = code
        return resp.dump_json()
Пример #19
0
    def POST(self):
        req  = protocol.ReportOfferWallPointReq(web.input(), web.cookies())
        resp = protocol.ReportOfferWallPointResp()

        logger.debug('domob point: %d, youmi point: %d, userid:%d, device_id:%s' \
                    %(req.domob_point, req.youmi_point, req.userid, req.device_id))

        if not SessionManager.instance().check_session(req.session_id, req.device_id, req.userid):
            resp.res = 401
            resp.msg = '登陆态异常'
            return resp.dump_json()

        if req.userid != 0:
            inviter = self.query_inviter(req.userid)
        else:
            inviter = 0

        if req.domob_point > 0:
            income = self.report_domob_point(req.userid, req.device_id, inviter, req.domob_point)
            if income < 0:
                logger.error('report_domob_point failed!! rtn:%d' %income)
                resp.res = -income
                resp.msg = 'report_domob_point failed!!'
                return resp.dump_json()
            resp.income += income

        if req.youmi_point > 0:
            income = self.report_youmi_point(req.userid, req.device_id, inviter, req.youmi_point)
            if income < 0:
                logger.error('report_youmi_point failed!! rtn:%d' %income)
                resp.res = -income
                resp.msg = 'report_youmi_point failed!!'
                return resp.dump_json()
            resp.income += income

        return resp.dump_json()
Пример #20
0
    def POST(self):
        req = protocol.RegisterReq(web.input(), web.cookies())
        resp = protocol.RegisterResp()

        if not self.re_idfa.match(req.idfa) or not self.re_mac.match(req.mac):
            resp.res = 1
            resp.msg = '参数错误'
            return resp.dump_json()

        cookies = web.cookies()
        logger.debug('cookies: platform=%s, version=%s%s, network=%s' \
                %(cookies.get('p', ''),
                    cookies.get('app', ''),
                    cookies.get('ver', ''),
                    cookies.get('net', '')))
        logger.debug('client ip: %s' % web.ctx.ip)

        #服务器维护
        if SWITCH_SERVER_DOWN == 1:
            resp.res = 511
            resp.msg = SWITCH_SERVER_DOWN_MSG
            return resp.dump_json()

        #配置提现开关
        if SWITCH_NO_WITHDRAW == 1:
            resp.no_withdraw = 1

        #配置TIPS
        if SWITCH_SERVER_TIPS == 1:
            resp.tips = SWITCH_SERVER_TIPS_CONTENT

        #配置积分墙开关(已废弃)
        resp.offerwall = {'domob': 0, 'youmi': 0}

        #配置积分墙列表
        resp.offerwall_list = [{
            'icon': 'task_icon_punchbox',
            'name': '触控应用任务',
            'type': 'punchbox',
            'ishot': 1
        }, {
            'icon': 'task_icon_youmi',
            'name': '有米应用任务',
            'type': 'youmi',
            'ishot': 0
        }, {
            'icon': 'task_icon_miidi',
            'name': '米迪应用任务',
            'type': 'miidi',
            'ishot': 0
        }, {
            'icon': 'task_icon_domob',
            'name': '多盟应用任务',
            'type': 'domob',
            'ishot': 0
        }]
        '''
        resp.offerwall_list = [
            {
                'icon':'task_icon_punchbox',
                'name':'触控应用任务',
                'type':'punchbox',
                'ishot':1
            },
            {
                'icon':'task_icon_youmi',
                'name':'有米应用任务',
                'type':'youmi',
                'ishot':1
            },
            {
                'icon':'task_icon_domob',
                'name':'多盟应用任务',
                'type':'domob',
                'ishot':0
            },
            {
                'icon':'task_icon_dianru',
                'name':'点入应用任务',
                'type':'dianru',
                'ishot':0
            },
            {
                'icon':'task_icon_miidi',
                'name':'米迪应用任务',
                'type':'miidi',
                'ishot':0
            }
        ]
        '''

        #配置强制升级
        if cookies.get('app', '').lower() != 'wangcai' and cookies.get(
                'ver', '') in ['1.1', '1.1.1', '1.2', '1.3', '']:
            resp.force_update = 1
            return resp.dump_json()

        #屏蔽2g/3g用户
        if False:
            if cookies.get('app', '').lower() != 'wangcai' and cookies.get(
                    'net', '') == '3g':
                logger.info('2g/3g user, ban! idfa:%s, mac:%s' %
                            (req.idfa, req.mac))
                resp.res = 403
                resp.msg = '错误$由于一些不可告人的技术原因,赚钱小猪只能在Wifi下面跑,请原谅,萌萌哒。'
                return resp.dump_json()

        data = {
            'idfa': req.idfa,
            'mac': req.mac,
            'platform': cookies.get('p', ''),
            'version': cookies.get('app', '') + cookies.get('ver', ''),
            'network': cookies.get('net', ''),
            'ip': web.ctx.ip,
        }

        url = 'http://' + ACCOUNT_BACKEND + '/register'

        r = http_request(url, data)
        if r['rtn'] == 1:
            resp.res = 403
            resp.msg = '错误$当前IP访问的机器数过高,为了保证广告投放商大爷的推广效果,您的设备今日无法继续使用小猪,请明日再试。'
            return resp.dump_json()
        elif r['rtn'] == 2:
            resp.res = 403
            resp.msg = '错误$您当前的IP及绑定账号被广告投放商判断为异常,您的账号已被冻结,导致此问题的原因可能是通过重置系统重复完成任务。如需申诉,请邮件手机号及问题至[email protected]。'
            return resp.dump_json()
        elif r['rtn'] != 0:
            resp.res = 1
            resp.msg = 'error'
            return resp.dump_json()

        resp.userid = userid = r['userid']
        resp.device_id = device_id = r['device_id']
        resp.phone = r['phone_num']
        resp.inviter = r['inviter']
        resp.invite_code = r['invite_code']

        #创建session缓存
        resp.session_id = SessionManager.instance().create_session(
            device_id, userid)

        if r['new_device']:
            logger.info('new device, idfa:%s, mac:%s' % (req.idfa, req.mac))

        data = {'userid': userid, 'device_id': device_id}

        url = 'http://' + BILLING_BACKEND + '/query_balance?' + urllib.urlencode(
            data)

        logger.info('billing request, url = %s' % (url))

        r = http_request(url)
        if r['rtn'] == 0:
            resp.balance = r['balance']
            resp.income = r['income']
            resp.outgo = r['outgo']
            resp.shared_income = r['shared_income']
            resp.offerwall_income = r['offerwall_income']
            resp.task_list = self.query_task_list(userid, device_id)

        return resp.dump_json()
Пример #21
0
    def POST(self):
        req  = protocol.RegisterReq(web.input(), web.cookies())
        resp = protocol.RegisterResp()

        if not self.re_idfa.match(req.idfa) or not self.re_mac.match(req.mac):
            resp.res = 1
            resp.msg = '参数错误'
            return resp.dump_json()
        
        cookies = web.cookies()
        logger.debug('cookies: platform=%s, version=%s%s, network=%s' \
                %(cookies.get('p', ''), 
                    cookies.get('app', ''),
                    cookies.get('ver', ''),
                    cookies.get('net', '')))
        logger.debug('client ip: %s' %web.ctx.ip)

        #服务器维护
        if SWITCH_SERVER_DOWN == 1:
            resp.res = 511
            resp.msg = SWITCH_SERVER_DOWN_MSG
            return resp.dump_json()

        #配置提现开关
        if SWITCH_NO_WITHDRAW == 1:
            resp.no_withdraw = 1

        #配置TIPS
        if SWITCH_SERVER_TIPS == 1:
            resp.tips = SWITCH_SERVER_TIPS_CONTENT

        #配置积分墙开关
        resp.offerwall = {'domob': 0, 'youmi': 1}

        #配置强制升级
        if cookies.get('app', '').lower() != 'wangcai' and cookies.get('ver', '') in ['1.1', '1.1.1', '1.2', '1.3', '']:
            resp.force_update = 1
            return resp.dump_json()

        #屏蔽2g/3g用户
        if cookies.get('app', '').lower() != 'wangcai' and cookies.get('net', '') == '3g':
            logger.info('2g/3g user, ban! idfa:%s, mac:%s' %(req.idfa, req.mac))
            resp.res = 403
            resp.msg = '错误$当前IP访问的机器数过高,为了保证广告商的推广效果,您的设备今日无法继续使用旺财,请明日再试。'
            return resp.dump_json()


        data = {
            'idfa': req.idfa,
            'mac': req.mac,
            'platform': cookies.get('p', ''),
            'version': cookies.get('app', '') + cookies.get('ver', ''),
            'network': cookies.get('net', ''),
            'ip': web.ctx.ip,
        }

        url = 'http://' + ACCOUNT_BACKEND + '/register'

        r = http_request(url, data)
        if r['rtn'] == 1:
            resp.res = 403
            resp.msg = '错误$当前IP访问的机器数过高,为了保证广告商的推广效果,您的设备今日无法继续使用旺财,请明日再试。'
            return resp.dump_json()
        elif r['rtn'] == 2:
            resp.res = 403
            resp.msg = '错误$您当前的IP及绑定账号被广告商判断为异常,您的账号已被冻结,导致此问题的原因可能是通过重置系统重复完成任务。如需申诉,请邮件手机号及问题至[email protected]。'
            return resp.dump_json()
        elif r['rtn'] != 0:
            resp.res = 1
            resp.msg = 'error'
            return resp.dump_json()

        resp.userid = userid = r['userid']
        resp.device_id = device_id = r['device_id']
        resp.phone = r['phone_num']
        resp.inviter = r['inviter']
        resp.invite_code = r['invite_code']

        #创建session缓存
        resp.session_id = SessionManager.instance().create_session(device_id, userid)

        if r['new_device']:
            logger.info('new device, idfa:%s, mac:%s' %(req.idfa, req.mac))

        data = {
            'userid': userid,
            'device_id': device_id
        }

        url = 'http://' + BILLING_BACKEND + '/query_balance?' + urllib.urlencode(data)

        r = http_request(url)
        if r['rtn'] == 0:
            resp.balance = r['balance']
            resp.income = r['income']
            resp.outgo = r['outgo']
            resp.shared_income = r['shared_income']
            resp.task_list = self.query_task_list(userid, device_id)

        return resp.dump_json()