def wx_UserRegist(): appId = 'wxde4ed04d17675e14' if request.method == 'POST': req_data = json.loads(request.get_data()) #app.logger.debug('res') #app.logger.debug(json.dumps(req_data)) #return req_data[u'code'] #encData = req_data.encryptedData url = 'https://api.weixin.qq.com/sns/jscode2session?appid=wxde\ 4ed04d17675e14&secret=c12283859e80a742ef233b73eafaff33&\ js_code=' + req_data[u'code'] + '&grant_type=authorization_code' #app.logger.debug(url) f = urllib2.urlopen(url) res = json.loads(f.read()) f.close() #app.logger.debug(res) #iv = req_data.iv #session_key and openid should be saved, while session_key shouldn't be transed by web openid = res[u'openid'] session_key = res[u'session_key'] (record_anew, flag_anew) = Identity.update_id_unique_record( openid=openid, session_key=session_key) #fetch the anew flag app.logger.debug("in UserRegist before commit") app.logger.debug(record_anew.created_time) db.session.merge(record_anew) db.session.commit() app.logger.debug("in UserRegist after commit") app.logger.debug(record_anew.created_time) try: return jsonify({'openid': res[u'openid'], 'flag_anew': flag_anew}) except: return res[u'errmsg'] else: return '<h1> you are not allwed to get anything unless post<h1>'
def wx_getInfo(): req_data = json.loads(request.get_data()) openid = req_data[u'openid'] (rcd, flag_anew) = Identity.update_id_unique_record( openid=openid) #update pzn_sessn in function update_id_unique_record app.logger.debug('Info_Get Approaching for Openid = ' + openid) if flag_anew: # In debugging case,maybe audio info could be request before regist app.logger.debug('No record for present openid!') if (rcd.group != 0) and (rcd.group != 1): rcd.group = 1 app.logger.debug('Subject without gender Info Enter Here!') rcd.fdbck += '<_BugNOGender_>' db.session.merge( rcd ) #Whatever happened, rcd should be updated before looking up, since sometimes update in Login was skipped for unclarified reason db.session.commit() (rcd, flag_anew) = Identity.update_id_unique_record( openid=openid) #update pzn_sessn in function update_id_unique_record audioInfo = AudioInfo.get_Info(sessn_No=rcd.pzn_sessn, group=rcd.group) #selected audio record app.logger.debug(json.dumps(audioInfo)) return json.dumps(audioInfo)
def wx_UserLog(): req_data = json.loads(request.get_data()) openid = req_data[u'openid'] #app.logger.debug(json.dumps(req_data[u'train_state'])) if req_data.has_key(u'train_state'): train_state = 1 app.logger.debug('Training state: one') else: train_state = 0 app.logger.debug('Training state: zero') if req_data.has_key(u'gender'): gender = req_data[u'gender'] app.logger.debug('Gender Loaded') else: gender = 0 if req_data.has_key(u'uploaded_data'): app.logger.debug('data_uploaded') uploaded_data = req_data[u'uploaded_data'] else: uploaded_data = '' if req_data.has_key(u'merge_seq'): app.logger.debug('merge_seq detected') merge_seq = req_data[u'merge_seq'] else: merge_seq = -2 (record_anew,flag_anew) = Identity.update_id_unique_record(openid=openid,\ train_state = train_state,uploaded_data = uploaded_data,gender = gender,merge_seq = merge_seq)#fetch the anew flag if hasattr(req_data, u'gender'): record_anew.gender = req_data[u'gender'] app.logger.debug( cls.query.filter_by(gender=gender).order_by( cls.gender.desc()).first()) #last record with same gender db.session.merge(record_anew) db.session.commit() return jsonify( { 'pzn_sessn': record_anew.pzn_sessn, 'flag_anew': flag_anew } ) #max sessn can also be returned to extend training plans for the participant