1
This commit is contained in:
@@ -300,7 +300,11 @@ def _create_alipay_order(order: PaymentOrder, db_configs: dict[str, str]) -> str
|
|||||||
from alipay.aop.api.request.AlipayTradePrecreateRequest import (
|
from alipay.aop.api.request.AlipayTradePrecreateRequest import (
|
||||||
AlipayTradePrecreateRequest,
|
AlipayTradePrecreateRequest,
|
||||||
)
|
)
|
||||||
|
from alipay.aop.api.response.AlipayTradePrecreateResponse import (
|
||||||
|
AlipayTradePrecreateResponse,
|
||||||
|
)
|
||||||
|
|
||||||
|
# 构造业务参数
|
||||||
model = AlipayTradePrecreateModel()
|
model = AlipayTradePrecreateModel()
|
||||||
model.out_trade_no = order.order_no
|
model.out_trade_no = order.order_no
|
||||||
model.total_amount = f"{order.amount:.2f}"
|
model.total_amount = f"{order.amount:.2f}"
|
||||||
@@ -313,34 +317,33 @@ def _create_alipay_order(order: PaymentOrder, db_configs: dict[str, str]) -> str
|
|||||||
if body_parts:
|
if body_parts:
|
||||||
model.body = " ".join(body_parts)
|
model.body = " ".join(body_parts)
|
||||||
|
|
||||||
request = AlipayTradePrecreateRequest()
|
# 构造请求
|
||||||
request.biz_model = model
|
request = AlipayTradePrecreateRequest(biz_model=model)
|
||||||
|
|
||||||
response = client.execute(request)
|
# 执行API调用
|
||||||
|
response_content = client.execute(request)
|
||||||
# Some SDK versions return a string; parse it into a response object
|
if not response_content:
|
||||||
from alipay.aop.api.response.AlipayTradePrecreateResponse import (
|
logger.error(f"Alipay precreate failed: empty response, order_no={order.order_no}")
|
||||||
AlipayTradePrecreateResponse,
|
|
||||||
)
|
|
||||||
if isinstance(response, str):
|
|
||||||
resp_obj = AlipayTradePrecreateResponse()
|
|
||||||
resp_obj.parse_response_content(response)
|
|
||||||
response = resp_obj
|
|
||||||
|
|
||||||
if not response.is_success():
|
|
||||||
logger.error(
|
|
||||||
f"Alipay precreate failed: code={response.code}, "
|
|
||||||
f"msg={response.msg}, sub_code={response.sub_code}, "
|
|
||||||
f"sub_msg={response.sub_msg}, order_no={order.order_no}"
|
|
||||||
)
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
# 解析响应结果
|
||||||
|
response = AlipayTradePrecreateResponse()
|
||||||
|
response.parse_response_content(response_content)
|
||||||
|
|
||||||
|
if response.is_success():
|
||||||
qr_url = response.qr_code
|
qr_url = response.qr_code
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Alipay precreate success: order_no={order.order_no}, "
|
f"Alipay precreate success: order_no={order.order_no}, "
|
||||||
f"qr_url={qr_url}"
|
f"qr_url={qr_url}"
|
||||||
)
|
)
|
||||||
return qr_url
|
return qr_url
|
||||||
|
else:
|
||||||
|
logger.error(
|
||||||
|
f"Alipay precreate failed: code={response.code}, "
|
||||||
|
f"msg={response.msg}, sub_code={response.sub_code}, "
|
||||||
|
f"sub_msg={response.sub_msg}, order_no={order.order_no}"
|
||||||
|
)
|
||||||
|
return None
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.exception(f"Alipay precreate exception: order_no={order.order_no}")
|
logger.exception(f"Alipay precreate exception: order_no={order.order_no}")
|
||||||
|
|||||||
Reference in New Issue
Block a user