35 lines
1.6 KiB
Python
35 lines
1.6 KiB
Python
"""GVSDS SDK Django AppConfig
|
|
|
|
使 gvsdsdk 可作为 Django INSTALLED_APPS 注册,以便 Django 发现 SDK 中的模型。
|
|
"""
|
|
|
|
from django.apps import AppConfig
|
|
|
|
|
|
class GvsdsdkConfig(AppConfig):
|
|
default_auto_field = 'django.db.models.BigAutoField'
|
|
name = 'gvsdsdk'
|
|
label = 'gvsdsdk'
|
|
verbose_name = 'GVSDS SDK'
|
|
|
|
def ready(self):
|
|
# 注册支付网关——确保子服务器独立部署时也能使用支付功能
|
|
# 主服务器 gvsds.apps.payment 也会注册,重复注册会覆盖,无副作用
|
|
import logging
|
|
logger = logging.getLogger('gvsdsdk')
|
|
try:
|
|
from gvsdsdk.payment.gateways.registry import payment_registry
|
|
from gvsdsdk.payment.gateways.wechat import WechatPaymentGateway
|
|
from gvsdsdk.payment.gateways.alipay import AlipayPaymentGateway
|
|
from gvsdsdk.payment.gateways.bank import BankPaymentGateway
|
|
except ImportError:
|
|
# 依赖缺失——网关适配器所需第三方库未安装,调用 Pay() 时才会暴露
|
|
logger.exception('支付网关自动注册失败:依赖缺失,请安装对应网关所需的第三方库')
|
|
return
|
|
try:
|
|
payment_registry.register('wechat', WechatPaymentGateway)
|
|
payment_registry.register('alipay', AlipayPaymentGateway)
|
|
payment_registry.register('bank', BankPaymentGateway)
|
|
except (ValueError, TypeError, AttributeError):
|
|
# 注册逻辑错误——网关适配器实现或注册表异常
|
|
logger.exception('支付网关自动注册失败:注册逻辑发生异常,请检查网关适配器实现') |