bugfix
This commit is contained in:
parent
1ebeb9581d
commit
1b1dfb7f16
@ -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:
|
||||
|
||||
@ -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}"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user