bugfix
This commit is contained in:
parent
b30303214e
commit
8e71c942e7
@ -1,5 +1,6 @@
|
||||
# init.py
|
||||
import os
|
||||
from appPublic.log import log,exception
|
||||
from ahserver.serverenv import ServerEnv
|
||||
from .notify import get_provider, get_provider_channel
|
||||
from .paylog import PaymentLog
|
||||
@ -40,6 +41,10 @@ async def create_payment(request, params_kw=None):
|
||||
if provider not in PROVIDERS:
|
||||
return {"error":"unknown provider"}
|
||||
try:
|
||||
if PROVIDERS[provider] is None:
|
||||
e = Exception(f'{provider} cannot pay')
|
||||
exception(f'{e}')
|
||||
raise e
|
||||
pl = PaymentLog(request._run_ns)
|
||||
channel = get_provider_channel(provider)
|
||||
userid = await get_suer()
|
||||
@ -67,6 +72,10 @@ async def query_payment(request, params_kw=None):
|
||||
if provider not in PROVIDERS:
|
||||
return {"error":"unknown provider"}
|
||||
try:
|
||||
if PROVIDERS[provider] is None:
|
||||
e = Exception(f'{provider} cannot pay')
|
||||
exception(f'{e}')
|
||||
raise e
|
||||
res = await PROVIDERS[provider].query(data)
|
||||
return res
|
||||
except Exception as e:
|
||||
@ -81,6 +90,10 @@ async def refund_payment(request, params_kw=None):
|
||||
if provider not in PROVIDERS:
|
||||
return {"error":"unknown provider"}
|
||||
try:
|
||||
if PROVIDERS[provider] is None:
|
||||
e = Exception(f'{provider} cannot pay')
|
||||
exception(f'{e}')
|
||||
raise e
|
||||
res = await PROVIDERS[provider].refund(data)
|
||||
return res
|
||||
except Exception as e:
|
||||
@ -95,6 +108,10 @@ async def payment_notify(request, callback, params_kw=None):
|
||||
headers = dict(request.headers)
|
||||
body = await request.text()
|
||||
try:
|
||||
if PROVIDERS[provider] is None:
|
||||
e = Exception(f'{provider} cannot pay')
|
||||
exception(f'{e}')
|
||||
raise e
|
||||
data = await PROVIDERS[provider].handle_notify(headers, body)
|
||||
# 这里 data 应包含标准化字段:out_trade_no/status/attach 等
|
||||
# TODO: 业务幂等处理
|
||||
|
||||
@ -17,13 +17,16 @@ def get_provider_channel(name:str):
|
||||
return channels.get(name, '9')
|
||||
|
||||
def get_provider(name: str, conf: Dict):
|
||||
if name == "wechat":
|
||||
return WechatGateway(**conf)
|
||||
if name == "paypal":
|
||||
return PaypalGateway(**conf)
|
||||
if name == "alipay":
|
||||
return AlipayGateway(**conf)
|
||||
if name == "stripe":
|
||||
return StripeGateway(**conf)
|
||||
raise ValueError("unknown provider")
|
||||
try:
|
||||
if name == "wechat":
|
||||
return WechatGateway(**conf)
|
||||
if name == "paypal":
|
||||
return PaypalGateway(**conf)
|
||||
if name == "alipay":
|
||||
return AlipayGateway(**conf)
|
||||
if name == "stripe":
|
||||
return StripeGateway(**conf)
|
||||
except:
|
||||
return None
|
||||
raise ValueError("unknown provider")
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user