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)
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)
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()
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)
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()
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()
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()
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()
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)
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()
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()
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)
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()
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()
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()
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()