- 新增jd模块基础路由,整合app_store和payment子路由 - 实现苹果权益充值接口,支持苹果、携程及沃尔玛多个渠道 - 实现卡号密码查询接口,支持不同类别订单查询 - 新增短信认证相关接口,实现短信验证码发送及短信登录 - 新增商品管理接口,支持SKU详情查询及账号类下单功能 - 新增订单管理接口,实现订单删除功能 - 实现支付相关接口,增加刷新支付参数功能 - 定义完整请求及响应数据模型,确保接口数据规范 - 编写AppStoreSpider类,封装苹果应用内订单处理逻辑 - 引入多种代理池及请求重试机制,增强接口稳定性 - 添加详细日志记录,便于请求追踪与错误排查
66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
from logging import LoggerAdapter
|
||
import traceback
|
||
|
||
from fastapi import APIRouter, HTTPException
|
||
|
||
from apps.jd.schemas.models import GoodsStoreRequest, SkuRequest
|
||
from apps.jd.services.game_area import GameArea
|
||
from apps.jd.services.goods_apple_card import GoodsAppleCard
|
||
from core.responses import BusinessCode
|
||
from observability.logging import get_logger_with_trace
|
||
|
||
|
||
router = APIRouter(prefix="/jd", tags=["商品管理"])
|
||
logger: LoggerAdapter = get_logger_with_trace(__name__)
|
||
|
||
|
||
@router.post("/sku")
|
||
async def get_sku_details(request_data: SkuRequest):
|
||
"""获取sku参数"""
|
||
cookies = request_data.cookies.strip()
|
||
sku_id = request_data.sku_id
|
||
|
||
details = GameArea.get_details(cookies, sku_id)
|
||
data = details.get("result", {})
|
||
item = {"code": 100 if data else 110, "data": data}
|
||
return item
|
||
|
||
|
||
@router.post("/goods/store")
|
||
async def goods_store(request_data: GoodsStoreRequest):
|
||
"""账号类下单"""
|
||
# 参数
|
||
face_price = request_data.face_price
|
||
order_num = request_data.order_num
|
||
cookies = request_data.cookies.strip()
|
||
brand_id = request_data.brand_id
|
||
sku_id = request_data.sku_id
|
||
username = request_data.username
|
||
game_srv = request_data.gamesrv
|
||
game_area_ = request_data.gamearea
|
||
recharge_type = request_data.recharge_type
|
||
|
||
# 打印参数日志
|
||
logger.info(f"订单ID:{order_num},cookies:{cookies}")
|
||
logger.info(f"订单ID:{order_num},card_pwd:{face_price}")
|
||
|
||
try:
|
||
app_store__ = GoodsAppleCard(
|
||
cookies=cookies,
|
||
face_price=face_price,
|
||
order_num=order_num,
|
||
sku_id=sku_id,
|
||
brand_id=brand_id,
|
||
username=username,
|
||
game_srv=game_srv,
|
||
game_area=game_area_,
|
||
recharge_type=recharge_type,
|
||
)
|
||
code, res = app_store__.run()
|
||
logger.info(f"订单ID:{order_num},goods_store最终返回日志:{res}")
|
||
if code == BusinessCode.SUCCESS:
|
||
return res
|
||
except Exception as e:
|
||
logger.error("请求失败" + traceback.format_exc(), exc_info=True)
|
||
raise HTTPException(status_code=500, detail="请求失败")
|