bugfix
This commit is contained in:
parent
1ebeb9581d
commit
1b1dfb7f16
@ -42,18 +42,21 @@ PROVIDERS = {}
|
|||||||
|
|
||||||
# 下单接口(统一)
|
# 下单接口(统一)
|
||||||
async def create_payment(request, params_kw=None):
|
async def create_payment(request, params_kw=None):
|
||||||
|
env = request._run_ns
|
||||||
if params_kw is None:
|
if params_kw is None:
|
||||||
params_kw = request.params_kw
|
params_kw = request.params_kw
|
||||||
data = params_kw
|
data = params_kw
|
||||||
data.request = request
|
data.request = request
|
||||||
provider = data.get("provider")
|
provider = data.get("provider")
|
||||||
if provider not in PROVIDERS:
|
if provider not in PROVIDERS:
|
||||||
|
debug(f'{provider=} is not a valid payment channel')
|
||||||
return {"error":"unknown provider"}
|
return {"error":"unknown provider"}
|
||||||
try:
|
try:
|
||||||
if PROVIDERS[provider] is None:
|
if PROVIDERS[provider] is None:
|
||||||
e = Exception(f'{provider} cannot pay')
|
e = Exception(f'{provider} cannot pay')
|
||||||
exception(f'{e}')
|
exception(f'{e}')
|
||||||
raise e
|
raise e
|
||||||
|
notify_url = env.entire_url(f'providers/{provider}')
|
||||||
pl = PaymentLog(request._run_ns)
|
pl = PaymentLog(request._run_ns)
|
||||||
fee = await get_pay_fee(provider, amount)
|
fee = await get_pay_fee(provider, amount)
|
||||||
channel = get_provider_channel(provider)
|
channel = get_provider_channel(provider)
|
||||||
@ -69,8 +72,11 @@ async def create_payment(request, params_kw=None):
|
|||||||
data.out_trade_no = plog.id
|
data.out_trade_no = plog.id
|
||||||
data.customerid = orgid
|
data.customerid = orgid
|
||||||
data.userid = userid
|
data.userid = userid
|
||||||
|
data.payment_name = payment_name
|
||||||
|
data.notify_url = notify_url
|
||||||
data.client_ip = cloent_ip
|
data.client_ip = cloent_ip
|
||||||
res = await PROVIDERS[provider].create_payment(data)
|
res = await PROVIDERS[provider].create_payment(data)
|
||||||
|
debug(f'{provider=} instance return {res}')
|
||||||
return res
|
return res
|
||||||
raise Exception('write payment_log error')
|
raise Exception('write payment_log error')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import base64
|
|||||||
import hashlib
|
import hashlib
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
from typing import Any, Dict, Optional
|
from typing import Any, Dict, Optional
|
||||||
|
from appPublic.log import debug, exception
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
from cryptography.hazmat.primitives import hashes
|
from cryptography.hazmat.primitives import hashes
|
||||||
@ -84,10 +85,11 @@ class AlipayGateway(Gateway):
|
|||||||
"""
|
"""
|
||||||
返回一个可以在 H5 里直接重定向的支付宝支付 URL
|
返回一个可以在 H5 里直接重定向的支付宝支付 URL
|
||||||
"""
|
"""
|
||||||
|
debug(f'{payload=}')
|
||||||
biz_content = {
|
biz_content = {
|
||||||
"out_trade_no": payload["out_trade_no"],
|
"out_trade_no": payload["out_trade_no"],
|
||||||
"total_amount": payload["amount"],
|
"total_amount": payload["amount"],
|
||||||
"subject": payload["subject"],
|
"subject": payload["payment_name"],
|
||||||
"product_code": "QUICK_WAP_WAY"
|
"product_code": "QUICK_WAP_WAY"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +109,7 @@ class AlipayGateway(Gateway):
|
|||||||
unsigned_str = self._build_sign_content(params)
|
unsigned_str = self._build_sign_content(params)
|
||||||
sign = self._sign(unsigned_str)
|
sign = self._sign(unsigned_str)
|
||||||
params["sign"] = sign
|
params["sign"] = sign
|
||||||
|
debug(f'{params=}')
|
||||||
query_str = urllib.parse.urlencode(params)
|
query_str = urllib.parse.urlencode(params)
|
||||||
return f"{ALIPAY_GATEWAY}?{query_str}"
|
return f"{ALIPAY_GATEWAY}?{query_str}"
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user