def create_api(self, url, **kwargs): """ 构造接口的函数 :param url: :param kwargs: :return: """ kwargs = { key: value for key, value in kwargs.items() if value is not None } data = str(kwargs).replace('\'', '\"') # 如果接口地址包含fw则为中台接口,token使用中台token req_body = body(data, guid=self.Guid, token=self.access_token, app_key=app_key) if '/fw/' in url: req_body = body(data, app_id=self.zt_tid, guid=self.zt_guid, token=self.zt_token, app_key=app_key) api_name = url.split("/")[-1] logger.info(f'接口{api_name}请求body:{req_body}') result = requests.post(url=url, json=req_body, verify=False) if result.json()['Code'] in [50001]: logger.error(f'接口{api_name} 返回参数:{result.json()}') else: logger.info(f'接口{api_name} 返回参数:{result.json()}') return result
def applet_login(phonenum, vcode, appid, appkey): #构建data data = databuild(mobile=phonenum, vcode=vcode) #构建body体 Body = body(data=data, guid=0, app_id=appid, app_key=appkey) print(Body) response = requests.post(url=applet_Login_api, json=Body, verify=False) print(response.json()) try: result = response.json() return result except Exception: print("登陆失败,请定位")
def jff_get_vcode(phonenum, url): """ 代发垫发获取验证码 :param phonenum: :param url: :return: vcode """ data = databuild(SPhone=phonenum) Body = body(data=data, guid=0, app_id='1000001', app_key='JFFAPP') response = requests.post(url=url, json=Body) try: result = response.json() return result except Exception: print("未获取到验证码,请定位")
def djy_get_vcode(phonenum, app_id, app_key): """ 大佳营模板获取验证码 :param phonenum: :param url: :return: vcode """ data = databuild(SPhone=phonenum) Body = body(data=data, guid=0, app_id=app_id, app_key=app_key) response = requests.post(url=get_vcode_api, json=Body) try: vcode = response.json()['Data'] logger.info(f'获取到验证码:{vcode}') return vcode except Exception: logger.error(f'未获取到验证码,请定位,{response.json}')
def labor_pre_login(phonenum, vcode, app_key): """ 大佳营模板预登陆接口 :param phonenum: :param vcode: :param url: :return: tenanttype """ data = databuild(Mobile=phonenum, VerifyCode=vcode) Body = body(data=data, guid=0, app_id='1000001', app_key=app_key) response = requests.post(url=labor_pre_login_api, json=Body) try: tenanttype = response.json()['Data']['TenantType'] logger.info(f'预登陆成功,tenanttype为{tenanttype}') return tenanttype except Exception: logger.error(f'预登陆失败,请定位,{response.json}')
def jff_logn_djylogin(phonenum, vcode, url, typ=-1, ptype=1): """ 代发垫发登陆 :param phonenum: :param vcode: :param url: :param typ: :param ptype: :return: """ data = databuild(Mobile=phonenum, VerifyCode=vcode, Type=typ, PType=ptype) Body = body(data=data, guid=0, app_id='1000001', app_key='JFFAPP') response = requests.post(url=url, json=Body) try: result = response.json() return result except Exception: print("登陆失败,请定位")
def labor_weblogin(phonenum, app_key): """ 劳务模板登陆接口 :param phonenum: :return: Data """ vcode = djy_get_vcode(phonenum=phonenum, app_id='1000001', app_key=app_key) tenanttype = labor_pre_login(phonenum=phonenum, vcode=vcode, app_key=app_key) data = databuild(Mobile=phonenum, VerifyCode=vcode, tenanttype=tenanttype) Body = body(data=data, guid=0, app_id='1000001', app_key=app_key) response = requests.post(url=labor_weblogin_api, json=Body) try: Data = response.json()['Data'] # access_token = Data['access_token'] # zt_tid = Data['zt_tid'] # Guid = str(Data['Guid']) # zt_access_token = Data['zt_access_token'] # zt_guid = str(Data['zt_guid']) # set_ = Set_Section(section_name=phonenum,filename='login_info') # isexit = set_.is_exit() # if isexit: # # print('jinruhun') # set_.edit_section('access_token',access_token) # set_.edit_section('zt_tid',zt_tid) # set_.edit_section('Guid', Guid) # set_.edit_section('zt_access_token', zt_access_token) # set_.edit_section('zt_guid', zt_guid) # else: # set_.add_section('access_token',access_token) # set_.edit_section('zt_tid', zt_tid) # set_.edit_section('Guid',Guid) # set_.edit_section('zt_access_token', zt_access_token) # set_.edit_section('zt_guid', zt_guid) logger.info(f'登陆成功,Data{Data}') return Data except Exception: logger.error(f'登陆失败,请定位,{response.json()}')