# 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")