修改删除商品接口,增加测试方法
parent
3436a1e38f
commit
7f1a5b5e67
|
@ -0,0 +1,29 @@
|
|||
from jose import JWTError, jwt
|
||||
from fastapi import HTTPException
|
||||
from datetime import datetime, timedelta
|
||||
from jose import ExpiredSignatureError
|
||||
SECRET_KEY = "Bv8Z1&xG$Aq7!s9PfL@t#QwE2rY%Nk*mCjH^Rb6DuXpZ+3VoBO"
|
||||
ALGORITHM = "HS256"
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES = 30
|
||||
|
||||
# === 创建 Token ===
|
||||
def create_access_token(data: dict, expires_delta: timedelta = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)):
|
||||
to_encode = data.copy()
|
||||
expire = datetime.utcnow() + expires_delta
|
||||
to_encode.update({"exp": expire})
|
||||
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
|
||||
return encoded_jwt
|
||||
|
||||
|
||||
def verify_token(token: str):
|
||||
try:
|
||||
payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
|
||||
if payload["role"] != "admin":
|
||||
return None
|
||||
|
||||
|
||||
return payload
|
||||
except ExpiredSignatureError:
|
||||
raise HTTPException(status_code=401, detail="Token已过期")
|
||||
except JWTError:
|
||||
raise HTTPException(status_code=401, detail="无效的Token")
|
431
main.py
431
main.py
|
@ -1,29 +1,416 @@
|
|||
import json
|
||||
import subprocess
|
||||
import time
|
||||
import uuid
|
||||
from functools import partial # 用来固定某个参数的固定值
|
||||
import uvicorn
|
||||
from pydantic import BaseModel
|
||||
from fastapi import FastAPI,Request
|
||||
app = FastAPI()
|
||||
|
||||
subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')
|
||||
import execjs
|
||||
from fastapi import FastAPI, Depends, Header, HTTPException
|
||||
from typing import Dict, Optional
|
||||
from pydantic import BaseModel
|
||||
from jose import JWTError, jwt
|
||||
from fastapi import HTTPException
|
||||
from datetime import datetime, timedelta
|
||||
from jose import ExpiredSignatureError
|
||||
SECRET_KEY = "Bv8Z1&xG$Aq7!s9PfL@t#QwE2rY%Nk*mCjH^Rb6DuXpZ+3VoBO"
|
||||
ALGORITHM = "HS256"
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES = 30
|
||||
from cryptography.fernet import Fernet
|
||||
import urllib.parse
|
||||
import requests
|
||||
from auth import verify_token,create_access_token
|
||||
|
||||
# === 创建 Token ===
|
||||
def create_access_token(data: dict, expires_delta: timedelta = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)):
|
||||
to_encode = data.copy()
|
||||
expire = datetime.utcnow() + expires_delta
|
||||
to_encode.update({"exp": expire})
|
||||
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
|
||||
return encoded_jwt
|
||||
class LoginRequest(BaseModel):
|
||||
user_id: str
|
||||
role: str
|
||||
fp: int
|
||||
@app.post("/login")
|
||||
async def login(data : LoginRequest):
|
||||
token = create_access_token(dict(data))
|
||||
return {"access_token": token, "token_type": "bearer"}
|
||||
async def check_jwt(authorization: str = Header(...)):
|
||||
if not authorization.startswith("Bearer "):
|
||||
raise HTTPException(status_code=401, detail="Token格式错误")
|
||||
token = authorization.replace("Bearer ", "")
|
||||
user_data = verify_token(token)
|
||||
if user_data is None:
|
||||
raise HTTPException(status_code=401, detail="无效的Token")
|
||||
return user_data
|
||||
|
||||
ctx=execjs.compile(open('ab_19.js', encoding='utf-8').read())
|
||||
requests.packages.urllib3.disable_warnings()
|
||||
# cookies = {
|
||||
# 'BUYIN_SASID': 'SID2_7492380176849060132',
|
||||
# 'SASID':'SID2_7492380176849060132'
|
||||
# }
|
||||
def common_encrypt1(json_data,params,ua):
|
||||
da = json.dumps(json_data).replace(' ', '')
|
||||
pa = urllib.parse.urlencode(params)
|
||||
ab = ctx.call('enc', pa, da, ua)
|
||||
params['a_bogus'] = ab
|
||||
data = json.dumps(json_data, separators=(',', ':'))
|
||||
return data
|
||||
def common_encrypt2(ua,params):
|
||||
pa = urllib.parse.urlencode(params)
|
||||
ab = ctx.call('encryptAbogus', ua, pa)
|
||||
params['a_bogus'] = ab
|
||||
# return data
|
||||
@app.post("/get_yellow_car_products")
|
||||
async def get_yellow_car(data:Dict,room_id:str,author_id:str,auth=Depends(check_jwt)):
|
||||
cookies = data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
||||
'cache-control': 'no-cache',
|
||||
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||
'origin': 'https://live.douyin.com',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://live.douyin.com/996935408475',
|
||||
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'uifid': '29d6bea3e5a6c157a08a212e1912b5e8a78666ece26be56100fa19e58a63a45bbf6ac0f2718fca29c4fa2fb5f45bfcaea6a8e560cad35459acf3bec074e26bd507cc878d629deea5d98525276c6c930e2871de6184fcd505c418ad8d62495640d5aef399e4fea7c04b933c919eeffb316d26046e16c46999a152ead37d61379966833aae53a414fc3a0c9ac4a382b31616161535518766374c9afe940933fe48',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
|
||||
'x-secsdk-csrf-token': '000100000001366a5d3aafc5da2b7fb7a8f9bbd2183e77e6bf0c1be7e91cccd6a288ad38fcd118360d9cc34524df',
|
||||
}
|
||||
params = {
|
||||
'device_platform': 'webapp',
|
||||
'aid': '6383',
|
||||
'channel': 'channel_pc_web',
|
||||
'room_id': f'{room_id}',
|
||||
'author_id': f'{author_id}',
|
||||
'offset': '0',
|
||||
'limit': '20',
|
||||
'pc_client_type': '1',
|
||||
'pc_libra_divert': 'Windows',
|
||||
'update_version_code': '170400',
|
||||
'support_h265': '1',
|
||||
'support_dash': '0',
|
||||
'version_code': '320100',
|
||||
'version_name': '32.1.0',
|
||||
'cookie_enabled': 'true',
|
||||
'screen_width': '1536',
|
||||
'screen_height': '864',
|
||||
'browser_language': 'zh-CN',
|
||||
'browser_platform': 'Win32',
|
||||
'browser_name': 'Chrome',
|
||||
'browser_version': '125.0.0.0',
|
||||
'browser_online': 'true',
|
||||
'engine_name': 'Blink',
|
||||
'engine_version': '125.0.0.0',
|
||||
'os_name': 'Windows',
|
||||
'os_version': '10',
|
||||
'cpu_core_num': '16',
|
||||
'device_memory': '8',
|
||||
'platform': 'PC',
|
||||
'downlink': '10',
|
||||
'effective_type': '4g',
|
||||
'round_trip_time': '250',
|
||||
'webid': '7446819597804946956',
|
||||
'uifid': '29d6bea3e5a6c157a08a212e1912b5e8a78666ece26be56100fa19e58a63a45bbf6ac0f2718fca29c4fa2fb5f45bfcaea6a8e560cad35459acf3bec074e26bd507cc878d629deea5d98525276c6c930e2871de6184fcd505c418ad8d62495640d5aef399e4fea7c04b933c919eeffb316d26046e16c46999a152ead37d61379966833aae53a414fc3a0c9ac4a382b31616161535518766374c9afe940933fe48',
|
||||
'msToken': '8w0DCcNbCsn5heG_fBkCx7SKtL-Bgv_awvNokCdqa9lboNSq-bYWMmjVA0YRS4RmwKJvI9CBtEdVTM2toasygEyun9PPQMROMAdV4mgZosBDcVJ7xCitwNJJQWhLH9ByYaC3DlxbG6Tz7WmNRZr01N68Ykz9uuweGFuo6eXIq9k=',
|
||||
}
|
||||
|
||||
response = requests.post('https://live.douyin.com/live/promotions/page/', params=params, cookies=cookies,headers=headers)
|
||||
pa = urllib.parse.urlencode(params)
|
||||
ab = ctx.call('encryptAbogus', headers['user-agent'], pa)
|
||||
params['a_bogus'] = ab
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
# "user_data": auth,
|
||||
"data": response.json()
|
||||
}
|
||||
def pack_detail(cookies):
|
||||
|
||||
json_data = {
|
||||
"scene_info": {
|
||||
"request_page": 2
|
||||
},
|
||||
"biz_id": "3717234303709610080",
|
||||
"biz_id_type": 2,
|
||||
"enter_from": "pc.selection_square.recommend_main",
|
||||
"data_module": "pc-non-core",
|
||||
"extra": {
|
||||
"use_kol_product": "1"
|
||||
}
|
||||
}
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
|
||||
'content-type': 'application/json',
|
||||
'origin': 'https://buyin.jinritemai.com',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/merch-picking-library/merch-promoting?commodity_id=3728500413717215016&commodity_location=3&id=3728500413717215016&activity_id=&pick_first_source=%E7%99%BE%E5%BA%94&pick_second_source=%E9%80%89%E5%93%81%E5%B9%BF%E5%9C%BA&pick_third_source=category_recommend&pick_source_id=&product_id=3728498815368560693&shop_id=193158700&search_id=2240ef2d8a855155c5a83bb0482ffccf197cd99dd99017347d914442b8d79bf1ccddd1f0f915ee2c660a28217e6bd5dd66590b94a7ba696647dc643b6fba1d47bf7e7d0612c3783b823e660d70df3343&log_pb=20250408191218566CCF37AF1B90242B12&session_id=2240ef2d8a855155c5a83bb0482ffccf197cd99dd99017347d914442b8d79bf1ccddd1f0f915ee2c660a28217e6bd5dd66590b94a7ba696647dc643b6fba1d47bf7e7d0612c3783b823e660d70df3343&recommend_reason_type=&recommend_reason_text=&is_outside_log=1&only_query_params=1&universal_append=1&pre_universal_unit_params=%257B%2522product_id%2522%253A%25223728498815368560693%2522%252C%2522commodity_id%2522%253A%25223728500413717215016%2522%252C%2522commodity_location%2522%253A3%252C%2522search_id%2522%253A%25222240ef2d8a855155c5a83bb0482ffccf197cd99dd99017347d914442b8d79bf1ccddd1f0f915ee2c660a28217e6bd5dd66590b94a7ba696647dc643b6fba1d47bf7e7d0612c3783b823e660d70df3343%2522%252C%2522log_pb%2522%253A%252220250408191218566CCF37AF1B90242B12%2522%257D&decision_enter_from=pc.selection_square.recommend_main&btm_ppre=a10091.b089178.c809509.d0&btm_pre=a10091.b24215.c644093.d595042_i2&btm_show_id=f578c8cf-e338-4822-b77f-045d94285562&pre_universal_page_params_id=583b872b-f9dd-412e-9587-4694833a881e&universal_page_params_id=3f180795-28e0-4fff-b6fb-b20bfd586d84',
|
||||
'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132", "Google Chrome";v="132"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
|
||||
'x-secsdk-csrf-token': '0001000000012482d40eaccfa7a5784bb075513bb1699468b8c87670bc4d5c07922d2be496c218345b0b21308ee7'
|
||||
}
|
||||
params = {
|
||||
'verifyFp': 'verify_m7szifjz_EqImAMTD_IDRv_4sWD_9bo7_sXGFbOtgRlYn',
|
||||
'fp': 'verify_m7szifjz_EqImAMTD_IDRv_4sWD_9bo7_sXGFbOtgRlYn',
|
||||
'msToken': 'I7uZRuIOIeku3Jsem5HNw5evwejIpkl9ETCeGQwB1Z-uhEuQR_xTwWc7j-xvUHeqTH7pupZ_5b6f78C_WVa5c2d0e4EQ4X-t8Nk8becYknydU08zj-_sAebX64TPtqqv6NJN7rhiP6F7hMu7uW3K_KIzgUlRzYxv4ikgoMS1M3riQZPlNjlycJA=',
|
||||
}
|
||||
data=common_encrypt1(json_data=json_data,params=params,ua=headers['user-agent'])
|
||||
response = requests.post(
|
||||
'https://buyin.jinritemai.com/pc/selection/decision/pack_detail',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
data=data,
|
||||
)
|
||||
return response.json()
|
||||
def get_material_list(cookies):
|
||||
# json_data = {
|
||||
# "scene_info": {
|
||||
# "request_page": 2
|
||||
# },
|
||||
# "biz_id": "3717234303709610080",
|
||||
# "biz_id_type": 2,
|
||||
# "enter_from": "pc.selection_square.recommend_main",
|
||||
# "data_module": "pc-non-core",
|
||||
# "extra": {
|
||||
# "use_kol_product": "1"
|
||||
# }
|
||||
# }
|
||||
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9',
|
||||
'cache-control': 'no-cache',
|
||||
'content-type': 'application/json',
|
||||
'origin': 'https://buyin.jinritemai.com',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/merch-picking-library?btm_ppre=a0.b0.c0.d0&btm_pre=a10091.b089178.c809509.d0&btm_show_id=11f0284e-a2dd-403d-baab-29a262eb52e1&pre_universal_page_params_id=&universal_page_params_id=2809881b-6321-4d1c-8605-8709c77848e6',
|
||||
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
|
||||
'x-secsdk-csrf-token': '00010000000194bc30606cc99d766875509daaa72ac141261bac200065eaf3fe8dab9ac361a4182679de3f0cf9d1',
|
||||
}
|
||||
|
||||
|
||||
def verify_token(token: str):
|
||||
try:
|
||||
payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
|
||||
if payload["role"] != "admin":
|
||||
return None
|
||||
params = {
|
||||
'verifyFp': 'verify_m9dzx9j1_utaEOIfT_m3VQ_4JoY_Bov0_E6EtRx86WJVG',#这两个可以随便乱写
|
||||
'fp': 'verify_m9dzx9j1_utaEOIfT_m3VQ_4JoY_Bov0_E6EtRx86WJVG',
|
||||
'msToken': 'I7uZRuIOIeku3Jsem5HNw5evwejIpkl9ETCeGQwB1Z-uhEuQR_xTwWc7j-xvUHeqTH7pupZ_5b6f78C_WVa5c2d0e4EQ4X-t8Nk8becYknydU08zj-_sAebX64TPtqqv6NJN7rhiP6F7hMu7uW3K_KIzgUlRzYxv4ikgoMS1M3riQZPlNjlycJA=',
|
||||
}
|
||||
data = {
|
||||
'scene': 'PCSquareFeed',
|
||||
'size': 30,
|
||||
'search_text': '',
|
||||
'cursor': 0,
|
||||
'extra': {
|
||||
'new_session_strategy': '1',
|
||||
'search_id': '',
|
||||
'session_id': '',
|
||||
'use_kol_product': '0',
|
||||
},
|
||||
'filters': {},
|
||||
}
|
||||
|
||||
data = common_encrypt1(json_data=data, params=params, ua=headers['user-agent'])
|
||||
response = requests.post(
|
||||
'https://buyin.jinritemai.com/pc/selection/common/material_list',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
data=data,
|
||||
verify=False
|
||||
)
|
||||
return response.json()
|
||||
|
||||
return payload
|
||||
except ExpiredSignatureError:
|
||||
raise HTTPException(status_code=401, detail="Token已过期")
|
||||
except JWTError:
|
||||
raise HTTPException(status_code=401, detail="无效的Token")
|
||||
@app.post("/get_products")
|
||||
async def get_products(data: Dict,auth=Depends(check_jwt)):#todo 橱窗商品查询接口
|
||||
cookies=data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
||||
'cache-control': 'no-cache',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/shopwindow/goods-list?pre_universal_page_params_id=&universal_page_params_id=50b10430-f2bf-4c4d-9d12-f07ade860f5c',
|
||||
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
|
||||
}
|
||||
|
||||
params = {
|
||||
'product_type': '0',
|
||||
'page': '1',
|
||||
'page_size': '20',
|
||||
'filter': 'false',
|
||||
'verifyFp': 'verify_m9fc66zp_hfTxtn1L_FDNH_4kRV_8fsT_u6RPpdK6oQxH',
|
||||
'fp': 'verify_m9fc66zp_hfTxtn1L_FDNH_4kRV_8fsT_u6RPpdK6oQxH',
|
||||
'msToken': 'O4i0W-LNj0RKjbWRfh8OBs8sMjJ8xZoDJxmo9Nb-0x9RLllln5uMzsuL8gjfVH2MGukd1T8PdTEB8HSq8xIc6qTJW_dgUPLbg827a5IIKGWRiDKtO5yoZNKV0KXlSWncKA3N6TIdiAdx8_fZaFJTNipYmcd-Me9NrXZjp_3IeUVa',
|
||||
|
||||
}
|
||||
|
||||
data = common_encrypt1(json_data='', params=params, ua=headers['user-agent'])
|
||||
response = requests.get('https://buyin.jinritemai.com/api/author/shop/products', params=params, cookies=cookies,
|
||||
headers=headers)
|
||||
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
# "user_data": auth,
|
||||
"data": response.json()
|
||||
}
|
||||
@app.post("/identify_products")
|
||||
def identify_products(data: Dict,urls:str,auth=Depends(check_jwt)):#识别商品
|
||||
cookies=data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
||||
'cache-control': 'no-cache',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/shopwindow/goods-list?pre_universal_page_params_id=&universal_page_params_id=bf3635b2-a64a-42c3-9f7f-6eb9096cc96f',
|
||||
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
|
||||
}
|
||||
params = {
|
||||
# 'urls': 'https://haohuo.jinritemai.com/ecommerce/trade/detail/index.html?id=3702192299720179773&origin_type=2631,https://haohuo.jinritemai.com/views/product/item2?id=3741702496180109752',
|
||||
'urls': f'{urls}',
|
||||
'scene': '3',
|
||||
'verifyFp': 'verify_m9fc66zp_hfTxtn1L_FDNH_4kRV_8fsT_u6RPpdK6oQxH',
|
||||
'fp': 'verify_m9fc66zp_hfTxtn1L_FDNH_4kRV_8fsT_u6RPpdK6oQxH',
|
||||
'msToken': 'O4i0W-LNj0RKjbWRfh8OBs8sMjJ8xZoDJxmo9Nb-0x9RLllln5uMzsuL8gjfVH2MGukd1T8PdTEB8HSq8xIc6qTJW_dgUPLbg827a5IIKGWRiDKtO5yoZNKV0KXlSWncKA3N6TIdiAdx8_fZaFJTNipYmcd-Me9NrXZjp_3IeUVa',
|
||||
|
||||
}
|
||||
common_encrypt2(ua=headers['user-agent'],params=params)
|
||||
response = requests.get(
|
||||
'https://buyin.jinritemai.com/pc/selection_tool/batch_link',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
)
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
"data": response.json()
|
||||
}
|
||||
@app.post("/add_products")
|
||||
def add_products(data:Dict,link_url:str,promotion_ids:str,auth=Depends(check_jwt)):#todo 添加商品
|
||||
cookies=data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
||||
'cache-control': 'no-cache',
|
||||
'content-type': 'application/json',
|
||||
'origin': 'https://buyin.jinritemai.com',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/shopwindow/goods-list?universal_page_params_id=4695b182-8959-4fb8-b029-c4fd66004fcf',
|
||||
'sec-ch-ua': '"Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
|
||||
'x-secsdk-csrf-token': '000100000001c09f45d66c9f65f6d44d52a5e8f643275f46f7e4f97ef1e5507165c9c2d20aab1834e2fed2495e14',
|
||||
}
|
||||
|
||||
params = {
|
||||
'verifyFp': 'verify_m9ayab85_7PGRhlEt_WsSw_4Zxz_AMSa_CGNDBbiWKxfm',
|
||||
'fp': 'verify_m9ayab85_7PGRhlEt_WsSw_4Zxz_AMSa_CGNDBbiWKxfm',
|
||||
'msToken': 'RmS7vcjWRyT-H1E2l7_Gts5Q4nGHCBsdSwuWjThr8pTeeSDbcBI6SpaVhQX9ml_z3OMIFp1EX1NVFHGsPTggO7dWBL1IoIbkNn2jLRcgqpyR3rHG5-v8vdB-x93lsNgr_TQn0SPzatZk3c1DDqL5x74X8SH-CsBJaLExWecM7yYVD1cA1x-ccg==',
|
||||
}
|
||||
pre_data_list = []
|
||||
for id,url in promotion_ids.split(","),link_url.split(","):
|
||||
pre_data_list.append({
|
||||
'promotion_id': f'{id}',
|
||||
'bind_source': '0',
|
||||
'link_url': f'{url}',
|
||||
})
|
||||
|
||||
common_encrypt2(ua=headers['user-agent'],params=params)
|
||||
json_data = {
|
||||
'pmts': pre_data_list,
|
||||
'hide_status': 2,
|
||||
}
|
||||
|
||||
response = requests.post(
|
||||
'https://buyin.jinritemai.com/api/shop/bind/',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
json=json_data,
|
||||
)
|
||||
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
"data": response.json()
|
||||
}
|
||||
@app.post("/del_unbind")
|
||||
def del_unbind(data:Dict,promotion_ids:str):
|
||||
cookies=data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
||||
'cache-control': 'no-cache',
|
||||
'content-type': 'application/json',
|
||||
'origin': 'https://buyin.jinritemai.com',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/shopwindow/goods-list?universal_page_params_id=4695b182-8959-4fb8-b029-c4fd66004fcf',
|
||||
'sec-ch-ua': '"Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
|
||||
'x-secsdk-csrf-token': '000100000001c09f45d66c9f65f6d44d52a5e8f643275f46f7e4f97ef1e5507165c9c2d20aab1834e2fed2495e14',
|
||||
}
|
||||
|
||||
params = {
|
||||
'verifyFp': 'verify_m9ayab85_7PGRhlEt_WsSw_4Zxz_AMSa_CGNDBbiWKxfm',
|
||||
'fp': 'verify_m9ayab85_7PGRhlEt_WsSw_4Zxz_AMSa_CGNDBbiWKxfm',
|
||||
'msToken': 'RmS7vcjWRyT-H1E2l7_Gts5Q4nGHCBsdSwuWjThr8pTeeSDbcBI6SpaVhQX9ml_z3OMIFp1EX1NVFHGsPTggO7dWBL1IoIbkNn2jLRcgqpyR3rHG5-v8vdB-x93lsNgr_TQn0SPzatZk3c1DDqL5x74X8SH-CsBJaLExWecM7yYVD1cA1x-ccg==',
|
||||
}
|
||||
common_encrypt2(headers['user-agent'],params=params)
|
||||
promotion_ids_list=[]
|
||||
for i in promotion_ids.split(","):promotion_ids_list.append(i)
|
||||
json_data = {
|
||||
'promotion_ids': promotion_ids_list,
|
||||
}
|
||||
print(json_data)
|
||||
response = requests.post(
|
||||
'https://buyin.jinritemai.com/api/anchor/shop/unbind',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
json=json_data,
|
||||
)
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
"data": response.json()
|
||||
}
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app,host="0.0.0.0",port=8080)
|
||||
# get_material_list()
|
||||
# pack_detail()
|
||||
# get_products()
|
||||
# identify_products()
|
||||
# add_products()
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
cryptography==44.0.2
|
||||
fastapi==0.115.12
|
||||
pydantic==2.11.3
|
||||
PyExecJS==1.5.1
|
||||
python_jose==3.4.0
|
||||
Requests==2.32.3
|
||||
uvicorn==0.34.1
|
|
@ -0,0 +1,89 @@
|
|||
import requests
|
||||
import uuid
|
||||
import time
|
||||
# from auth import create_access_token
|
||||
data={
|
||||
"user_id": str(uuid.UUID),
|
||||
"role": "admin",
|
||||
"fp":int(time.time()),
|
||||
}
|
||||
jwt=requests.post("http://localhost:8080/login",json=data).json()['access_token']
|
||||
#TODO 这里是巨量百应的ck
|
||||
data2 = {
|
||||
'BUYIN_SASID': 'SID2_7492981858080112935',
|
||||
'SASID':'SID2_7492981858080112935'
|
||||
}
|
||||
#TODO 这里是抖音的ck
|
||||
data1 = {
|
||||
'ttwid': '1%7CUVB51cDI7GY0yyiCBtrU5IoTdHixuxTrNykHrPzbRCk%7C1744392589%7Cb0ed96d039d373f75e9f86983304ad70532dd23a4df1af69f1b0828103c1b6e5',
|
||||
'n_mh': 'geOcP6qU-laruJUx6JHMEUZkPwLFtVmTFaO3fJ46gMI',
|
||||
'sid_guard': '9e24a6486603b34cc5c60a16712a9fb3%7C1744596869%7C5184000%7CFri%2C+13-Jun-2025+02%3A14%3A29+GMT',
|
||||
'uid_tt': 'adb3fcdab0d4ed5626f9a3c5c4a5bf47',
|
||||
'uid_tt_ss': 'adb3fcdab0d4ed5626f9a3c5c4a5bf47',
|
||||
'sid_tt': '9e24a6486603b34cc5c60a16712a9fb3',
|
||||
'sessionid': '9e24a6486603b34cc5c60a16712a9fb3',
|
||||
'sessionid_ss': '9e24a6486603b34cc5c60a16712a9fb3',
|
||||
'is_staff_user': 'false',
|
||||
'sid_ucp_v1': '1.0.0-KDk3OTIzZTIxZDJmZDMxYWIyOTVlODU5NmQyMDhhOTQ2OGQ2MTYzMDcKIQjNiNDHsIz1BxCF3_G_BhjvMSAMMMafwpEGOAdA9AdIBBoCbHEiIDllMjRhNjQ4NjYwM2IzNGNjNWM2MGExNjcxMmE5ZmIz',
|
||||
'ssid_ucp_v1': '1.0.0-KDk3OTIzZTIxZDJmZDMxYWIyOTVlODU5NmQyMDhhOTQ2OGQ2MTYzMDcKIQjNiNDHsIz1BxCF3_G_BhjvMSAMMMafwpEGOAdA9AdIBBoCbHEiIDllMjRhNjQ4NjYwM2IzNGNjNWM2MGExNjcxMmE5ZmIz',
|
||||
'login_time': '1744596869897',
|
||||
'IsDouyinActive': 'true',
|
||||
'publish_badge_show_info': '%220%2C0%2C0%2C1744596872958%22',
|
||||
'xg_device_score': '7.523030082041696',
|
||||
'SelfTabRedDotControl': '%5B%5D',
|
||||
'_bd_ticket_crypt_cookie': '15005b8d8b6ad1f68d33b050cfdf481e',
|
||||
'__security_mc_1_s_sdk_sign_data_key_web_protect': '82669e23-4437-b1c5',
|
||||
'__security_mc_1_s_sdk_cert_key': 'f4c89aed-4e94-bacb',
|
||||
'__security_server_data_status': '1',
|
||||
'bd_ticket_guard_client_data': 'eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCUE8wVmY0bGZmSGlldGhPblN1MFNVM1pHR3Vwbk9CUlE2UElUTlY0WGphWko2V2EvMmkrMVhVN0hUQWM2VFpsSXRkTnA4Q1JqRHZzdXh5SEpRZGlES2c9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoyfQ%3D%3D',
|
||||
'passport_fe_beating_status': 'true',
|
||||
'odin_tt': '7281e3ee93766f632e95b0ad354335ee955ebc379555617fbc680eb18d393f054d84e37c9cec7f01214eddd9a5749c55596ae87f5995403c92e7a268f5fafed7',
|
||||
'live_can_add_dy_2_desktop': '%221%22',
|
||||
'volume_info': '%7B%22isMute%22%3Afalse%2C%22isUserMute%22%3Afalse%2C%22volume%22%3A0.6%7D',
|
||||
'download_guide': '%223%2F20250414%2F0%22',
|
||||
}
|
||||
|
||||
headers = {
|
||||
"Authorization": f"Bearer {jwt}"
|
||||
}
|
||||
import unittest
|
||||
|
||||
class MyTestCase(unittest.TestCase):
|
||||
'''
|
||||
测试识别
|
||||
'''
|
||||
def test_identify_products(self):
|
||||
params={
|
||||
"urls":"https://haohuo.jinritemai.com/ecommerce/trade/detail/index.html?id=3702192299720179773&origin_type=2631,https://haohuo.jinritemai.com/views/product/item2?id=3741702496180109752"
|
||||
}
|
||||
result=requests.post("http://localhost:8080/identify_products",json=data2,params=params,headers=headers)
|
||||
print(f"result.json()---->{result.json()}")
|
||||
'''
|
||||
测试增加商品
|
||||
'''
|
||||
def test_add_products(self):
|
||||
params = {#请注意这里url要与id对应(顺序对应)
|
||||
"link_url":"https://haohuo.jinritemai.com/ecommerce/trade/detail/index.html?id=3702192299720179773&origin_type=2631,https://haohuo.jinritemai.com/views/product/item2?id=3741702496180109752",
|
||||
"promotion_ids":"3702192299720179773,3741702496180109752"
|
||||
}
|
||||
result=requests.post("http://localhost:8080/add_products",json=data2,params=params,headers=headers)
|
||||
print(f"result.json()---->{result.json()}")
|
||||
'''
|
||||
测试删除
|
||||
'''
|
||||
def test_del_unbind(self):
|
||||
params = {
|
||||
"promotion_ids": "3723494051140468845,3568029813883172377"
|
||||
}
|
||||
result=requests.post("http://localhost:8080/del_unbind",json=data2,params=params,headers=headers)
|
||||
print(f"result.json()---->{result.json()}")
|
||||
|
||||
'''
|
||||
测试小黄车
|
||||
'''
|
||||
def test_get_yellow_car(self):
|
||||
params={"room_id":"7493339316282723123",
|
||||
"author_id":"1626907841411991"
|
||||
}
|
||||
result = requests.post("http://localhost:8080/get_yellow_car_products", json=data1, params=params, headers=headers)
|
||||
print(f"result.json()---->{result.json()}")
|
428
web.py
428
web.py
|
@ -1,428 +0,0 @@
|
|||
import json
|
||||
import subprocess
|
||||
import time
|
||||
import uuid
|
||||
from functools import partial # 用来固定某个参数的固定值
|
||||
import uvicorn
|
||||
from pydantic import BaseModel
|
||||
from fastapi import FastAPI,Request
|
||||
app = FastAPI()
|
||||
|
||||
subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')
|
||||
import execjs
|
||||
from fastapi import FastAPI, Depends, Header, HTTPException
|
||||
from typing import Dict, Optional
|
||||
from pydantic import BaseModel
|
||||
from jose import JWTError, jwt
|
||||
from datetime import datetime, timedelta
|
||||
from cryptography.fernet import Fernet
|
||||
import urllib.parse
|
||||
import requests
|
||||
from auth import verify_token,create_access_token
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
user_id: str
|
||||
role: str
|
||||
fp: int
|
||||
@app.post("/login")
|
||||
async def login(data : LoginRequest):
|
||||
token = create_access_token(dict(data))
|
||||
return {"access_token": token, "token_type": "bearer"}
|
||||
async def check_jwt(authorization: str = Header(...)):
|
||||
if not authorization.startswith("Bearer "):
|
||||
raise HTTPException(status_code=401, detail="Token格式错误")
|
||||
token = authorization.replace("Bearer ", "")
|
||||
user_data = verify_token(token)
|
||||
if user_data is None:
|
||||
raise HTTPException(status_code=401, detail="无效的Token")
|
||||
return user_data
|
||||
|
||||
ctx=execjs.compile(open('ab_19.js', encoding='utf-8').read())
|
||||
requests.packages.urllib3.disable_warnings()
|
||||
# cookies = {
|
||||
# 'BUYIN_SASID': 'SID2_7492380176849060132',
|
||||
# 'SASID':'SID2_7492380176849060132'
|
||||
# }
|
||||
def common_encrypt1(json_data,params,ua):
|
||||
da = json.dumps(json_data).replace(' ', '')
|
||||
pa = urllib.parse.urlencode(params)
|
||||
ab = ctx.call('enc', pa, da, ua)
|
||||
params['a_bogus'] = ab
|
||||
data = json.dumps(json_data, separators=(',', ':'))
|
||||
return data
|
||||
def common_encrypt2(ua,params):
|
||||
pa = urllib.parse.urlencode(params)
|
||||
ab = ctx.call('encryptAbogus', ua, pa)
|
||||
params['a_bogus'] = ab
|
||||
# return data
|
||||
@app.post("/get_yellow_car_products")
|
||||
async def get_yellow_car(data:Dict,room_id:str,auth=Depends(check_jwt)):
|
||||
cookies = data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
||||
'cache-control': 'no-cache',
|
||||
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||
'origin': 'https://live.douyin.com',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://live.douyin.com/996935408475',
|
||||
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'uifid': '29d6bea3e5a6c157a08a212e1912b5e8a78666ece26be56100fa19e58a63a45bbf6ac0f2718fca29c4fa2fb5f45bfcaea6a8e560cad35459acf3bec074e26bd507cc878d629deea5d98525276c6c930e2871de6184fcd505c418ad8d62495640d5aef399e4fea7c04b933c919eeffb316d26046e16c46999a152ead37d61379966833aae53a414fc3a0c9ac4a382b31616161535518766374c9afe940933fe48',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
|
||||
'x-secsdk-csrf-token': '000100000001366a5d3aafc5da2b7fb7a8f9bbd2183e77e6bf0c1be7e91cccd6a288ad38fcd118360d9cc34524df',
|
||||
}
|
||||
params = {
|
||||
'device_platform': 'webapp',
|
||||
'aid': '6383',
|
||||
'channel': 'channel_pc_web',
|
||||
'room_id': f'{room_id}',
|
||||
'author_id': '4498836619270612',
|
||||
'offset': '0',
|
||||
'limit': '20',
|
||||
'pc_client_type': '1',
|
||||
'pc_libra_divert': 'Windows',
|
||||
'update_version_code': '170400',
|
||||
'support_h265': '1',
|
||||
'support_dash': '0',
|
||||
'version_code': '320100',
|
||||
'version_name': '32.1.0',
|
||||
'cookie_enabled': 'true',
|
||||
'screen_width': '1536',
|
||||
'screen_height': '864',
|
||||
'browser_language': 'zh-CN',
|
||||
'browser_platform': 'Win32',
|
||||
'browser_name': 'Chrome',
|
||||
'browser_version': '125.0.0.0',
|
||||
'browser_online': 'true',
|
||||
'engine_name': 'Blink',
|
||||
'engine_version': '125.0.0.0',
|
||||
'os_name': 'Windows',
|
||||
'os_version': '10',
|
||||
'cpu_core_num': '16',
|
||||
'device_memory': '8',
|
||||
'platform': 'PC',
|
||||
'downlink': '10',
|
||||
'effective_type': '4g',
|
||||
'round_trip_time': '250',
|
||||
'webid': '7446819597804946956',
|
||||
'uifid': '29d6bea3e5a6c157a08a212e1912b5e8a78666ece26be56100fa19e58a63a45bbf6ac0f2718fca29c4fa2fb5f45bfcaea6a8e560cad35459acf3bec074e26bd507cc878d629deea5d98525276c6c930e2871de6184fcd505c418ad8d62495640d5aef399e4fea7c04b933c919eeffb316d26046e16c46999a152ead37d61379966833aae53a414fc3a0c9ac4a382b31616161535518766374c9afe940933fe48',
|
||||
'msToken': '8w0DCcNbCsn5heG_fBkCx7SKtL-Bgv_awvNokCdqa9lboNSq-bYWMmjVA0YRS4RmwKJvI9CBtEdVTM2toasygEyun9PPQMROMAdV4mgZosBDcVJ7xCitwNJJQWhLH9ByYaC3DlxbG6Tz7WmNRZr01N68Ykz9uuweGFuo6eXIq9k=',
|
||||
}
|
||||
|
||||
response = requests.post('https://live.douyin.com/live/promotions/page/', params=params, cookies=cookies,headers=headers)
|
||||
pa = urllib.parse.urlencode(params)
|
||||
ab = ctx.call('encryptAbogus', headers['user-agent'], pa)
|
||||
params['a_bogus'] = ab
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
# "user_data": auth,
|
||||
"data": response.json()
|
||||
}
|
||||
def pack_detail(cookies):
|
||||
|
||||
json_data = {
|
||||
"scene_info": {
|
||||
"request_page": 2
|
||||
},
|
||||
"biz_id": "3717234303709610080",
|
||||
"biz_id_type": 2,
|
||||
"enter_from": "pc.selection_square.recommend_main",
|
||||
"data_module": "pc-non-core",
|
||||
"extra": {
|
||||
"use_kol_product": "1"
|
||||
}
|
||||
}
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
|
||||
'content-type': 'application/json',
|
||||
'origin': 'https://buyin.jinritemai.com',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/merch-picking-library/merch-promoting?commodity_id=3728500413717215016&commodity_location=3&id=3728500413717215016&activity_id=&pick_first_source=%E7%99%BE%E5%BA%94&pick_second_source=%E9%80%89%E5%93%81%E5%B9%BF%E5%9C%BA&pick_third_source=category_recommend&pick_source_id=&product_id=3728498815368560693&shop_id=193158700&search_id=2240ef2d8a855155c5a83bb0482ffccf197cd99dd99017347d914442b8d79bf1ccddd1f0f915ee2c660a28217e6bd5dd66590b94a7ba696647dc643b6fba1d47bf7e7d0612c3783b823e660d70df3343&log_pb=20250408191218566CCF37AF1B90242B12&session_id=2240ef2d8a855155c5a83bb0482ffccf197cd99dd99017347d914442b8d79bf1ccddd1f0f915ee2c660a28217e6bd5dd66590b94a7ba696647dc643b6fba1d47bf7e7d0612c3783b823e660d70df3343&recommend_reason_type=&recommend_reason_text=&is_outside_log=1&only_query_params=1&universal_append=1&pre_universal_unit_params=%257B%2522product_id%2522%253A%25223728498815368560693%2522%252C%2522commodity_id%2522%253A%25223728500413717215016%2522%252C%2522commodity_location%2522%253A3%252C%2522search_id%2522%253A%25222240ef2d8a855155c5a83bb0482ffccf197cd99dd99017347d914442b8d79bf1ccddd1f0f915ee2c660a28217e6bd5dd66590b94a7ba696647dc643b6fba1d47bf7e7d0612c3783b823e660d70df3343%2522%252C%2522log_pb%2522%253A%252220250408191218566CCF37AF1B90242B12%2522%257D&decision_enter_from=pc.selection_square.recommend_main&btm_ppre=a10091.b089178.c809509.d0&btm_pre=a10091.b24215.c644093.d595042_i2&btm_show_id=f578c8cf-e338-4822-b77f-045d94285562&pre_universal_page_params_id=583b872b-f9dd-412e-9587-4694833a881e&universal_page_params_id=3f180795-28e0-4fff-b6fb-b20bfd586d84',
|
||||
'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132", "Google Chrome";v="132"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
|
||||
'x-secsdk-csrf-token': '0001000000012482d40eaccfa7a5784bb075513bb1699468b8c87670bc4d5c07922d2be496c218345b0b21308ee7'
|
||||
}
|
||||
params = {
|
||||
'verifyFp': 'verify_m7szifjz_EqImAMTD_IDRv_4sWD_9bo7_sXGFbOtgRlYn',
|
||||
'fp': 'verify_m7szifjz_EqImAMTD_IDRv_4sWD_9bo7_sXGFbOtgRlYn',
|
||||
'msToken': 'I7uZRuIOIeku3Jsem5HNw5evwejIpkl9ETCeGQwB1Z-uhEuQR_xTwWc7j-xvUHeqTH7pupZ_5b6f78C_WVa5c2d0e4EQ4X-t8Nk8becYknydU08zj-_sAebX64TPtqqv6NJN7rhiP6F7hMu7uW3K_KIzgUlRzYxv4ikgoMS1M3riQZPlNjlycJA=',
|
||||
}
|
||||
data=common_encrypt1(json_data=json_data,params=params,ua=headers['user-agent'])
|
||||
response = requests.post(
|
||||
'https://buyin.jinritemai.com/pc/selection/decision/pack_detail',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
data=data,
|
||||
)
|
||||
return response.json()
|
||||
def get_material_list(cookies):
|
||||
# json_data = {
|
||||
# "scene_info": {
|
||||
# "request_page": 2
|
||||
# },
|
||||
# "biz_id": "3717234303709610080",
|
||||
# "biz_id_type": 2,
|
||||
# "enter_from": "pc.selection_square.recommend_main",
|
||||
# "data_module": "pc-non-core",
|
||||
# "extra": {
|
||||
# "use_kol_product": "1"
|
||||
# }
|
||||
# }
|
||||
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9',
|
||||
'cache-control': 'no-cache',
|
||||
'content-type': 'application/json',
|
||||
'origin': 'https://buyin.jinritemai.com',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/merch-picking-library?btm_ppre=a0.b0.c0.d0&btm_pre=a10091.b089178.c809509.d0&btm_show_id=11f0284e-a2dd-403d-baab-29a262eb52e1&pre_universal_page_params_id=&universal_page_params_id=2809881b-6321-4d1c-8605-8709c77848e6',
|
||||
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
|
||||
'x-secsdk-csrf-token': '00010000000194bc30606cc99d766875509daaa72ac141261bac200065eaf3fe8dab9ac361a4182679de3f0cf9d1',
|
||||
}
|
||||
|
||||
|
||||
params = {
|
||||
'verifyFp': 'verify_m9dzx9j1_utaEOIfT_m3VQ_4JoY_Bov0_E6EtRx86WJVG',#这两个可以随便乱写
|
||||
'fp': 'verify_m9dzx9j1_utaEOIfT_m3VQ_4JoY_Bov0_E6EtRx86WJVG',
|
||||
'msToken': 'I7uZRuIOIeku3Jsem5HNw5evwejIpkl9ETCeGQwB1Z-uhEuQR_xTwWc7j-xvUHeqTH7pupZ_5b6f78C_WVa5c2d0e4EQ4X-t8Nk8becYknydU08zj-_sAebX64TPtqqv6NJN7rhiP6F7hMu7uW3K_KIzgUlRzYxv4ikgoMS1M3riQZPlNjlycJA=',
|
||||
}
|
||||
data = {
|
||||
'scene': 'PCSquareFeed',
|
||||
'size': 30,
|
||||
'search_text': '',
|
||||
'cursor': 0,
|
||||
'extra': {
|
||||
'new_session_strategy': '1',
|
||||
'search_id': '',
|
||||
'session_id': '',
|
||||
'use_kol_product': '0',
|
||||
},
|
||||
'filters': {},
|
||||
}
|
||||
|
||||
data = common_encrypt1(json_data=data, params=params, ua=headers['user-agent'])
|
||||
response = requests.post(
|
||||
'https://buyin.jinritemai.com/pc/selection/common/material_list',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
data=data,
|
||||
verify=False
|
||||
)
|
||||
return response.json()
|
||||
|
||||
@app.post("/get_products")
|
||||
async def get_products(data: Dict,auth=Depends(check_jwt)):#todo 橱窗商品查询接口
|
||||
cookies=data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
||||
'cache-control': 'no-cache',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/shopwindow/goods-list?pre_universal_page_params_id=&universal_page_params_id=50b10430-f2bf-4c4d-9d12-f07ade860f5c',
|
||||
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
|
||||
}
|
||||
|
||||
params = {
|
||||
'product_type': '0',
|
||||
'page': '1',
|
||||
'page_size': '20',
|
||||
'filter': 'false',
|
||||
'verifyFp': 'verify_m9fc66zp_hfTxtn1L_FDNH_4kRV_8fsT_u6RPpdK6oQxH',
|
||||
'fp': 'verify_m9fc66zp_hfTxtn1L_FDNH_4kRV_8fsT_u6RPpdK6oQxH',
|
||||
'msToken': 'O4i0W-LNj0RKjbWRfh8OBs8sMjJ8xZoDJxmo9Nb-0x9RLllln5uMzsuL8gjfVH2MGukd1T8PdTEB8HSq8xIc6qTJW_dgUPLbg827a5IIKGWRiDKtO5yoZNKV0KXlSWncKA3N6TIdiAdx8_fZaFJTNipYmcd-Me9NrXZjp_3IeUVa',
|
||||
|
||||
}
|
||||
|
||||
data = common_encrypt1(json_data='', params=params, ua=headers['user-agent'])
|
||||
response = requests.get('https://buyin.jinritemai.com/api/author/shop/products', params=params, cookies=cookies,
|
||||
headers=headers)
|
||||
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
# "user_data": auth,
|
||||
"data": response.json()
|
||||
}
|
||||
@app.post("/identify_products")
|
||||
def identify_products(data: Dict,urls:str,auth=Depends(check_jwt)):#识别商品
|
||||
cookies=data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
||||
'cache-control': 'no-cache',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/shopwindow/goods-list?pre_universal_page_params_id=&universal_page_params_id=bf3635b2-a64a-42c3-9f7f-6eb9096cc96f',
|
||||
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
|
||||
}
|
||||
params = {
|
||||
# 'urls': 'https://haohuo.jinritemai.com/ecommerce/trade/detail/index.html?id=3702192299720179773&origin_type=2631,https://haohuo.jinritemai.com/views/product/item2?id=3741702496180109752',
|
||||
'urls': f'{urls}',
|
||||
'scene': '3',
|
||||
'verifyFp': 'verify_m9fc66zp_hfTxtn1L_FDNH_4kRV_8fsT_u6RPpdK6oQxH',
|
||||
'fp': 'verify_m9fc66zp_hfTxtn1L_FDNH_4kRV_8fsT_u6RPpdK6oQxH',
|
||||
'msToken': 'O4i0W-LNj0RKjbWRfh8OBs8sMjJ8xZoDJxmo9Nb-0x9RLllln5uMzsuL8gjfVH2MGukd1T8PdTEB8HSq8xIc6qTJW_dgUPLbg827a5IIKGWRiDKtO5yoZNKV0KXlSWncKA3N6TIdiAdx8_fZaFJTNipYmcd-Me9NrXZjp_3IeUVa',
|
||||
|
||||
}
|
||||
common_encrypt2(ua=headers['user-agent'],params=params)
|
||||
response = requests.get(
|
||||
'https://buyin.jinritemai.com/pc/selection_tool/batch_link',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
)
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
"data": response.json()
|
||||
}
|
||||
@app.post("/add_products")
|
||||
def add_products(data:Dict,link_url:str,promotion_ids:str,auth=Depends(check_jwt)):#todo 添加商品
|
||||
cookies=data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
||||
'cache-control': 'no-cache',
|
||||
'content-type': 'application/json',
|
||||
'origin': 'https://buyin.jinritemai.com',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/shopwindow/goods-list?universal_page_params_id=4695b182-8959-4fb8-b029-c4fd66004fcf',
|
||||
'sec-ch-ua': '"Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
|
||||
'x-secsdk-csrf-token': '000100000001c09f45d66c9f65f6d44d52a5e8f643275f46f7e4f97ef1e5507165c9c2d20aab1834e2fed2495e14',
|
||||
}
|
||||
|
||||
params = {
|
||||
'verifyFp': 'verify_m9ayab85_7PGRhlEt_WsSw_4Zxz_AMSa_CGNDBbiWKxfm',
|
||||
'fp': 'verify_m9ayab85_7PGRhlEt_WsSw_4Zxz_AMSa_CGNDBbiWKxfm',
|
||||
'msToken': 'RmS7vcjWRyT-H1E2l7_Gts5Q4nGHCBsdSwuWjThr8pTeeSDbcBI6SpaVhQX9ml_z3OMIFp1EX1NVFHGsPTggO7dWBL1IoIbkNn2jLRcgqpyR3rHG5-v8vdB-x93lsNgr_TQn0SPzatZk3c1DDqL5x74X8SH-CsBJaLExWecM7yYVD1cA1x-ccg==',
|
||||
}
|
||||
pre_data_list = []
|
||||
for id,url in promotion_ids.split(","),link_url.split(","):
|
||||
pre_data_list.append({
|
||||
'promotion_id': f'{id}',
|
||||
'bind_source': '0',
|
||||
'link_url': f'{url}',
|
||||
})
|
||||
|
||||
common_encrypt2(ua=headers['user-agent'],params=params)
|
||||
json_data = {
|
||||
'pmts': pre_data_list,
|
||||
'hide_status': 2,
|
||||
}
|
||||
# json_data = {
|
||||
# 'pmts': [
|
||||
# {
|
||||
# 'promotion_id': '3702193318256605699',
|
||||
# 'bind_source': '0',
|
||||
# 'link_url': 'https://haohuo.jinritemai.com/ecommerce/trade/detail/index.html?id=3702192299720179773&origin_type=2631',
|
||||
# },
|
||||
# {
|
||||
# 'promotion_id': '3743576749200507019',
|
||||
# 'bind_source': '0',
|
||||
# 'link_url': 'https://haohuo.jinritemai.com/views/product/item2?id=3741702496180109752',
|
||||
# },
|
||||
# ],
|
||||
# 'hide_status': 2,
|
||||
# }
|
||||
response = requests.post(
|
||||
'https://buyin.jinritemai.com/api/shop/bind/',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
json=json_data,
|
||||
)
|
||||
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
"data": response.json()
|
||||
}
|
||||
@app.post("/del_unbind")
|
||||
def del_unbind(data:Dict,promotion_id:str):
|
||||
cookies=data
|
||||
headers = {
|
||||
'accept': 'application/json, text/plain, */*',
|
||||
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
||||
'cache-control': 'no-cache',
|
||||
'content-type': 'application/json',
|
||||
'origin': 'https://buyin.jinritemai.com',
|
||||
'pragma': 'no-cache',
|
||||
'priority': 'u=1, i',
|
||||
'referer': 'https://buyin.jinritemai.com/dashboard/shopwindow/goods-list?universal_page_params_id=4695b182-8959-4fb8-b029-c4fd66004fcf',
|
||||
'sec-ch-ua': '"Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'sec-fetch-dest': 'empty',
|
||||
'sec-fetch-mode': 'cors',
|
||||
'sec-fetch-site': 'same-origin',
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
|
||||
'x-secsdk-csrf-token': '000100000001c09f45d66c9f65f6d44d52a5e8f643275f46f7e4f97ef1e5507165c9c2d20aab1834e2fed2495e14',
|
||||
}
|
||||
|
||||
params = {
|
||||
'verifyFp': 'verify_m9ayab85_7PGRhlEt_WsSw_4Zxz_AMSa_CGNDBbiWKxfm',
|
||||
'fp': 'verify_m9ayab85_7PGRhlEt_WsSw_4Zxz_AMSa_CGNDBbiWKxfm',
|
||||
'msToken': 'RmS7vcjWRyT-H1E2l7_Gts5Q4nGHCBsdSwuWjThr8pTeeSDbcBI6SpaVhQX9ml_z3OMIFp1EX1NVFHGsPTggO7dWBL1IoIbkNn2jLRcgqpyR3rHG5-v8vdB-x93lsNgr_TQn0SPzatZk3c1DDqL5x74X8SH-CsBJaLExWecM7yYVD1cA1x-ccg==',
|
||||
}
|
||||
common_encrypt2(headers['user-agent'],params=params)
|
||||
json_data = {
|
||||
'promotion_id': f'{promotion_id}',
|
||||
}
|
||||
|
||||
response = requests.post(
|
||||
'https://buyin.jinritemai.com/api/anchor/shop/unbind',
|
||||
params=params,
|
||||
cookies=cookies,
|
||||
headers=headers,
|
||||
json=json_data,
|
||||
)
|
||||
return {
|
||||
"msg": "认证成功",
|
||||
"data": response.json()
|
||||
}
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app,host="0.0.0.0",port=8000)
|
||||
# get_material_list()
|
||||
# pack_detail()
|
||||
# get_products()
|
||||
# identify_products()
|
||||
# add_products()
|
Loading…
Reference in New Issue