39 lines
987 B
Python
39 lines
987 B
Python
# unipay/notify.py
|
|
from typing import Dict
|
|
from appPublic.log import exception
|
|
from .providers.transfer import TransferGateway
|
|
from .providers.wechat import WechatGateway
|
|
from .providers.paypal import PaypalGateway
|
|
from .providers.alipay import AlipayGateway
|
|
from .providers.stripe import StripeGateway
|
|
|
|
# 简单工厂:你可以按需扩展配置注入
|
|
|
|
def get_provider_channel(name:str):
|
|
channels = {
|
|
"wechat":"0",
|
|
"paypal":"1",
|
|
"alipay":"2",
|
|
"stripe":"3",
|
|
"transfer":"4"
|
|
}
|
|
return channels.get(name, '9')
|
|
|
|
def get_provider(name: str, conf: Dict):
|
|
try:
|
|
if name == "transfer":
|
|
return TransferGateway(**conf)
|
|
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 Exception as e:
|
|
exception(f'get_proveder() error {name=}, {conf=}, {e}')
|
|
return None
|
|
raise ValueError("unknown provider")
|
|
|