Commit af6252a9 by baiquan

add params proxies

parent fb51b8ad
......@@ -23,6 +23,7 @@ class SyncShopInfoRequest(BaseModel):
class CreateTemplateRequest(BaseModel):
cookies: dict
template_params: dict
proxies: dict = None
class DoudianLoginRequest(BaseModel):
account: str
......
......@@ -2,7 +2,6 @@ import json
import random
import time
from hashlib import md5
from urllib.parse import urlencode
import requests
......@@ -39,8 +38,8 @@ def get_access_key(fp_id, app_key, device_id):
access_key = obj.hexdigest()
return access_key
def update_callback_cookies(cookies, headers, redirect_url):
callback_res = requests.get(redirect_url, cookies=cookies, headers=headers, allow_redirects=False)
def update_callback_cookies(cookies, headers, redirect_url, proxies):
callback_res = requests.get(redirect_url, cookies=cookies, headers=headers, allow_redirects=False, proxies=proxies)
return update_cookies(callback_res.cookies, cookies)
def get_account_sdk_source_info():
data = {
......
......@@ -7,7 +7,7 @@ from common import get_account_sdk_source_info, get_ms_token, encryptParams, enc
update_callback_cookies
from dy_verify import mouse_verify
def get_callback_cookies(login_cookies, headers, encrypt_params):
def get_callback_cookies(login_cookies, headers, encrypt_params, proxies):
account_sdk_source_info = get_account_sdk_source_info()
check_login_params = {
'fp': encrypt_params['fp'],
......@@ -22,7 +22,7 @@ def get_callback_cookies(login_cookies, headers, encrypt_params):
}
x_bogus_url = 'https://doudian-sso.jinritemai.com/aff/check_login/' + "?" + urlencode(check_login_params)
check_login_url = x_bogus_url + f'&signature=_02B4Z6wo00001k1CzegAAIDCemYJt5a7r6JNQslAAPSgmx8MO5UrYu5YW6SCdzCrIIqaFJbM6j62JJU3g5yarKiSx7EgoKdBA92pBjYFVyjR9yIxwEceUkyEGviysE59DRUIWFyx3Akm0kWcbc'
check_login_res = requests.get(check_login_url, cookies=login_cookies, headers=headers)
check_login_res = requests.get(check_login_url, cookies=login_cookies, headers=headers, proxies=proxies)
login_subject_uid = check_login_res.json()['login_list'][0]['login_subject_uid']
user_identity_id = check_login_res.json()['login_list'][0]['user_identity_list'][0]['user_identity_id_str']
encrypt_obj = encryptParamsId(login_subject_uid, user_identity_id)
......@@ -38,7 +38,7 @@ def get_callback_cookies(login_cookies, headers, encrypt_params):
'user_identity_id': encrypt_obj['user_identity_id'],
}
ticket_url = f"https://doudian-sso.jinritemai.com/aff/subject/login/?subject_aid=4966&fp={encrypt_params['fp']}&aid=4272&language=zh&account_sdk_source=web&account_sdk_source_info={account_sdk_source_info}&msToken={get_ms_token()}"
ticket_res = requests.post(ticket_url, cookies=login_cookies, headers=headers, data=ticket_data)
ticket_res = requests.post(ticket_url, cookies=login_cookies, headers=headers, data=ticket_data, proxies=proxies)
cookies = update_cookies(ticket_res.cookies, login_cookies)
ticket = ticket_res.json()['redirect_url'].split('ticket=')[-1]
redirect_params = {
......@@ -50,8 +50,7 @@ def get_callback_cookies(login_cookies, headers, encrypt_params):
'_lid': '312003629857',
}
redirect_res = requests.get('https://fxg.jinritemai.com/index/login', params=redirect_params, cookies=cookies,
headers=headers,
allow_redirects=False)
headers=headers,allow_redirects=False, proxies=proxies)
redirect_url = redirect_res.headers.get('Location')
params = {
'login_source': 'doudian_pc_web',
......@@ -60,9 +59,9 @@ def get_callback_cookies(login_cookies, headers, encrypt_params):
'entry_source': '0',
'ecom_login_extra': '',
}
cookies = update_callback_cookies(cookies, headers, redirect_url)
cookies = update_callback_cookies(cookies, headers, redirect_url, proxies)
callback_res = requests.get('https://fxg.jinritemai.com/ecomauth/loginv1/callback', params=params, cookies=cookies,
headers=headers, verify=False)
headers=headers, verify=False, proxies=proxies)
logging.info(f"-------- get_callback_cookies: cookies获取成功!--------")
return update_cookies(callback_res.cookies, cookies)
......@@ -108,7 +107,7 @@ def login(account, password, headers, proxies):
mouse_verify(encrypt_params['fp'], verify_center_decision_conf)
except:
continue
login_res = requests.post(login_url, headers=headers, data=data, verify=False)
login_res = requests.post(login_url, headers=headers, data=data, verify=False, proxies=proxies)
if login_res.json()['description'] != '滑动滑块进行验证':
logging.info(f"-------- login_verify: 滑块处理成功!--------")
break
......@@ -117,5 +116,5 @@ def login(account, password, headers, proxies):
logging.error(f"-------- login: 登录失败!--------")
return None
logging.info(f"-------- login: 登录成功!--------")
return dict(get_callback_cookies(login_res.cookies, headers, encrypt_params))
return dict(get_callback_cookies(login_res.cookies, headers, encrypt_params, proxies))
......@@ -70,10 +70,10 @@ def execute_sync_shop_info(browser_id: str, listen_data: list):
asyncio.run(closeBrowser(browser_id))
@shared_task(name='sync_create_template')
def execute_sync_create_template(cookies: dict, template_params: dict):
def execute_sync_create_template(cookies: dict, template_params: dict, proxies: dict):
"""创建运费模板"""
try:
result = asyncio.run(createTemplate(cookies, template_params))
result = asyncio.run(createTemplate(cookies, template_params, proxies))
return {
'code': 200,
'msg': 'success',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment