This commit is contained in:
eric
2026-03-13 05:52:35 -05:00
parent 53cacfac46
commit 4634b16cf8
2 changed files with 12 additions and 5 deletions

View File

@@ -69,6 +69,10 @@ def create_digital_router(prefix: str, project_name: str, site_id: str | None =
random_suffix = "".join(random.choices(string.hexdigits.lower(), k=8)) random_suffix = "".join(random.choices(string.hexdigits.lower(), k=8))
timestamp = int(time.time()) timestamp = int(time.time())
order_id = f"{user_id}_{pay_type}_order_{timestamp}_{random_suffix}" order_id = f"{user_id}_{pay_type}_order_{timestamp}_{random_suffix}"
return_url = item.get("return_url")
if return_url and "order_id=" not in return_url and "out_trade_no=" not in return_url:
sep = "&" if "?" in return_url else "?"
return_url = f"{return_url}{sep}order_id={order_id}"
type_map = { type_map = {
"book": "购买书籍", "book": "购买书籍",
"meetup": "数字游民社区报名", "meetup": "数字游民社区报名",
@@ -84,7 +88,7 @@ def create_digital_router(prefix: str, project_name: str, site_id: str | None =
total_fee_yuan=total_fee_yuan, total_fee_yuan=total_fee_yuan,
pay_type=channel, pay_type=channel,
notify_url=notify_url, notify_url=notify_url,
return_url=item.get("return_url"), return_url=return_url,
client_ip=item.get("client_ip"), client_ip=item.get("client_ip"),
) )
_safe_log( _safe_log(
@@ -94,7 +98,7 @@ def create_digital_router(prefix: str, project_name: str, site_id: str | None =
order_id, order_id,
provider.name, provider.name,
notify_url, notify_url,
item.get("return_url") or "", return_url or "",
) )
if provider.name == "xorpay": if provider.name == "xorpay":
return { return {
@@ -139,13 +143,16 @@ def create_digital_router(prefix: str, project_name: str, site_id: str | None =
pay_type = item.get("type", "unknown").lower() pay_type = item.get("type", "unknown").lower()
return_url = item.get("return_url") return_url = item.get("return_url")
device = item.get("device", "pc") device = item.get("device", "pc")
random_suffix = "".join(random.choices(string.hexdigits.lower(), k=8))
timestamp = int(time.time())
order_id = f"{user_id}_{pay_type}_order_{timestamp}_{random_suffix}"
if return_url and "order_id=" not in return_url and "out_trade_no=" not in return_url:
sep = "&" if "?" in return_url else "?"
return_url = f"{return_url}{sep}order_id={order_id}"
client_ip = item.get("client_ip") or (request.client.host if request.client else "127.0.0.1") client_ip = item.get("client_ip") or (request.client.host if request.client else "127.0.0.1")
forwarded = request.headers.get("x-forwarded-for") forwarded = request.headers.get("x-forwarded-for")
if forwarded: if forwarded:
client_ip = forwarded.split(",")[0].strip() client_ip = forwarded.split(",")[0].strip()
random_suffix = "".join(random.choices(string.hexdigits.lower(), k=8))
timestamp = int(time.time())
order_id = f"{user_id}_{pay_type}_order_{timestamp}_{random_suffix}"
type_map = { type_map = {
"book": "购买书籍", "book": "购买书籍",
"meetup": "数字游民社区报名", "meetup": "数字游民社区报名",