From 1b1dfb7f169908ca50aaad700d0eeca3a4b76034 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 17 Dec 2025 11:13:15 +0800 Subject: [PATCH] bugfix --- unipay/init.py | 6 ++++++ unipay/providers/alipay.py | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/unipay/init.py b/unipay/init.py index f7442a2..6314d4d 100644 --- a/unipay/init.py +++ b/unipay/init.py @@ -42,18 +42,21 @@ PROVIDERS = {} # 下单接口(统一) async def create_payment(request, params_kw=None): + env = request._run_ns if params_kw is None: params_kw = request.params_kw data = params_kw data.request = request provider = data.get("provider") if provider not in PROVIDERS: + debug(f'{provider=} is not a valid payment channel') return {"error":"unknown provider"} try: if PROVIDERS[provider] is None: e = Exception(f'{provider} cannot pay') exception(f'{e}') raise e + notify_url = env.entire_url(f'providers/{provider}') pl = PaymentLog(request._run_ns) fee = await get_pay_fee(provider, amount) channel = get_provider_channel(provider) @@ -69,8 +72,11 @@ async def create_payment(request, params_kw=None): data.out_trade_no = plog.id data.customerid = orgid data.userid = userid + data.payment_name = payment_name + data.notify_url = notify_url data.client_ip = cloent_ip res = await PROVIDERS[provider].create_payment(data) + debug(f'{provider=} instance return {res}') return res raise Exception('write payment_log error') except Exception as e: diff --git a/unipay/providers/alipay.py b/unipay/providers/alipay.py index e638e33..b43da92 100644 --- a/unipay/providers/alipay.py +++ b/unipay/providers/alipay.py @@ -5,6 +5,7 @@ import base64 import hashlib import urllib.parse from typing import Any, Dict, Optional +from appPublic.log import debug, exception import aiohttp from cryptography.hazmat.primitives import hashes @@ -84,10 +85,11 @@ class AlipayGateway(Gateway): """ 返回一个可以在 H5 里直接重定向的支付宝支付 URL """ + debug(f'{payload=}') biz_content = { "out_trade_no": payload["out_trade_no"], "total_amount": payload["amount"], - "subject": payload["subject"], + "subject": payload["payment_name"], "product_code": "QUICK_WAP_WAY" } @@ -107,7 +109,7 @@ class AlipayGateway(Gateway): unsigned_str = self._build_sign_content(params) sign = self._sign(unsigned_str) params["sign"] = sign - + debug(f'{params=}') query_str = urllib.parse.urlencode(params) return f"{ALIPAY_GATEWAY}?{query_str}"