1
This commit is contained in:
@@ -157,7 +157,7 @@ def _get_alipay_client(app_id: str, private_key: str, public_key: str, gateway:
|
|||||||
config.sign_type = "RSA2"
|
config.sign_type = "RSA2"
|
||||||
config.charset = "utf-8"
|
config.charset = "utf-8"
|
||||||
try:
|
try:
|
||||||
_alipay_client = DefaultAlipayClient(config)
|
_alipay_client = DefaultAlipayClient(config, logger)
|
||||||
_alipay_client_app_id = app_id
|
_alipay_client_app_id = app_id
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.exception("Failed to initialize Alipay client")
|
logger.exception("Failed to initialize Alipay client")
|
||||||
@@ -321,21 +321,16 @@ def _create_alipay_order(order: PaymentOrder, db_configs: dict[str, str]) -> str
|
|||||||
|
|
||||||
response = client.execute(request)
|
response = client.execute(request)
|
||||||
|
|
||||||
|
# Some SDK versions return a string; parse it into a response object
|
||||||
|
from alipay.aop.api.response.AlipayTradePrecreateResponse import (
|
||||||
|
AlipayTradePrecreateResponse,
|
||||||
|
)
|
||||||
if isinstance(response, str):
|
if isinstance(response, str):
|
||||||
logger.error(
|
resp_obj = AlipayTradePrecreateResponse()
|
||||||
f"Alipay precreate returned string instead of object: "
|
resp_obj.parse_response_content(response)
|
||||||
f"order_no={order.order_no}, response={response[:500]}"
|
response = resp_obj
|
||||||
)
|
|
||||||
return None
|
|
||||||
|
|
||||||
if response.code == "10000":
|
if not response.is_success():
|
||||||
qr_url = response.qr_code
|
|
||||||
logger.info(
|
|
||||||
f"Alipay precreate success: order_no={order.order_no}, "
|
|
||||||
f"qr_url={qr_url}"
|
|
||||||
)
|
|
||||||
return qr_url
|
|
||||||
else:
|
|
||||||
logger.error(
|
logger.error(
|
||||||
f"Alipay precreate failed: code={response.code}, "
|
f"Alipay precreate failed: code={response.code}, "
|
||||||
f"msg={response.msg}, sub_code={response.sub_code}, "
|
f"msg={response.msg}, sub_code={response.sub_code}, "
|
||||||
@@ -343,6 +338,13 @@ def _create_alipay_order(order: PaymentOrder, db_configs: dict[str, str]) -> str
|
|||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
qr_url = response.qr_code
|
||||||
|
logger.info(
|
||||||
|
f"Alipay precreate success: order_no={order.order_no}, "
|
||||||
|
f"qr_url={qr_url}"
|
||||||
|
)
|
||||||
|
return qr_url
|
||||||
|
|
||||||
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}")
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user