重构虎牙精英宝典协议与支付状态链路

This commit is contained in:
yml2213
2026-09-01 11:31:15 +08:00
parent 955ba45488
commit 684e16a07a
12 changed files with 937 additions and 51 deletions
+124
View File
@@ -639,6 +639,130 @@ class QueryUserOrderListRsp(TafStruct):
}
class OrderDetailOrder(TafStruct):
"""orderDetailV5 中的订单摘要;保留支付轮询所需字段。"""
def __init__(self):
self.orderId: int = 0
self.orderStatus: int = 0
self.createTime: int = 0
self.payTime: int = 0
self.totalPrice: int = 0
def read_from(self, ins: TafInputStream):
while True:
pos = ins.buf.tell()
tag, dtype = ins.read_head()
if dtype == TafType.STRUCT_END:
ins.buf.seek(pos)
return
if tag == 0:
ins.buf.seek(pos)
self.orderId = ins.read_int64(tag, default=self.orderId)
elif tag == 3:
ins.buf.seek(pos)
self.orderStatus = ins.read_int32(tag, default=self.orderStatus)
elif tag == 7:
ins.buf.seek(pos)
self.totalPrice = ins.read_int64(tag, default=self.totalPrice)
elif tag == 13:
ins.buf.seek(pos)
self.createTime = ins.read_int64(tag, default=self.createTime)
elif tag == 14:
ins.buf.seek(pos)
self.payTime = ins.read_int64(tag, default=self.payTime)
else:
ins.skip_field(dtype)
def write_to(self, os: TafOutputStream):
os.write_int64(0, self.orderId)
os.write_int32(3, self.orderStatus)
os.write_int64(7, self.totalPrice)
os.write_int64(13, self.createTime)
os.write_int64(14, self.payTime)
def to_dict(self) -> dict:
return {
"order_id": self.orderId,
"order_status": self.orderStatus,
"create_time": self.createTime,
"pay_time": self.payTime,
"total_price": self.totalPrice,
}
class OrderDetailReq(TafStruct):
"""shopMiddleUI.orderDetailV5 请求。"""
def __init__(self):
self.userId = UserId()
self.shopAppInfo = ShopAppInfo()
self.orderId: int = 0
def write_to(self, os: TafOutputStream):
os.write_struct(0, self.userId)
os.write_struct(1, self.shopAppInfo)
os.write_int64(2, self.orderId)
def read_from(self, ins: TafInputStream):
self.userId = ins.read_struct(0, UserId) or self.userId
self.shopAppInfo = ins.read_struct(1, ShopAppInfo) or self.shopAppInfo
self.orderId = ins.read_int64(2, default=self.orderId)
class OrderDetailData(TafStruct):
def __init__(self):
self.order: OrderDetailOrder | None = None
def read_from(self, ins: TafInputStream):
while True:
pos = ins.buf.tell()
tag, dtype = ins.read_head()
if dtype == TafType.STRUCT_END:
ins.buf.seek(pos)
return
if tag == 1:
ins.buf.seek(pos)
self.order = ins.read_struct(1, OrderDetailOrder)
else:
ins.skip_field(dtype)
def write_to(self, os: TafOutputStream):
if self.order:
os.write_struct(1, self.order)
class OrderDetailRsp(TafStruct):
"""shopMiddleUI.orderDetailV5 响应。"""
def __init__(self):
self.code = 0
self.message = ""
self.data: OrderDetailData | None = None
def read_from(self, ins: TafInputStream):
self.code = ins.read_int32(0, default=self.code)
self.message = ins.read_string(1, default=self.message)
self.data = ins.read_struct(2, OrderDetailData)
@property
def order(self) -> OrderDetailOrder | None:
return self.data.order if self.data else None
def write_to(self, os: TafOutputStream):
os.write_int32(0, self.code)
os.write_string(1, self.message)
if self.data:
os.write_struct(2, self.data)
def to_dict(self) -> dict:
return {
"code": self.code,
"message": self.message,
"order": self.order.to_dict() if self.order else None,
}
# ============================================================
# 下单
# ============================================================