61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
package wallet
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"hyapp/pkg/appcode"
|
|
)
|
|
|
|
// ExternalRechargeConfig 保存 H5 外部充值需要公开给业务链路的运行配置。
|
|
type ExternalRechargeConfig struct {
|
|
USDTTRC20Enabled bool
|
|
USDTTRC20Address string
|
|
USDTTRC20Addresses map[string]string
|
|
USDTBEP20Enabled bool
|
|
USDTBEP20Address string
|
|
USDTBEP20Addresses map[string]string
|
|
MifaPayNotifyURL string
|
|
MifaPayReturnURL string
|
|
V5PayNotifyURL string
|
|
V5PayReturnURL string
|
|
}
|
|
|
|
func normalizeExternalRechargeConfig(config ExternalRechargeConfig) ExternalRechargeConfig {
|
|
config.USDTTRC20Address = strings.TrimSpace(config.USDTTRC20Address)
|
|
config.USDTTRC20Addresses = normalizeRuntimeRechargeAddressMap(config.USDTTRC20Addresses)
|
|
config.USDTBEP20Address = strings.TrimSpace(config.USDTBEP20Address)
|
|
config.USDTBEP20Addresses = normalizeRuntimeRechargeAddressMap(config.USDTBEP20Addresses)
|
|
config.MifaPayNotifyURL = strings.TrimSpace(config.MifaPayNotifyURL)
|
|
config.MifaPayReturnURL = strings.TrimSpace(config.MifaPayReturnURL)
|
|
config.V5PayNotifyURL = strings.TrimSpace(config.V5PayNotifyURL)
|
|
config.V5PayReturnURL = strings.TrimSpace(config.V5PayReturnURL)
|
|
return config
|
|
}
|
|
|
|
func (config ExternalRechargeConfig) usdtTRC20AddressForApp(app string) string {
|
|
return firstNonEmpty(config.USDTTRC20Addresses[appcode.Normalize(app)], config.USDTTRC20Address)
|
|
}
|
|
|
|
func (config ExternalRechargeConfig) usdtBEP20AddressForApp(app string) string {
|
|
return firstNonEmpty(config.USDTBEP20Addresses[appcode.Normalize(app)], config.USDTBEP20Address)
|
|
}
|
|
|
|
func normalizeRuntimeRechargeAddressMap(values map[string]string) map[string]string {
|
|
if len(values) == 0 {
|
|
return nil
|
|
}
|
|
normalized := make(map[string]string, len(values))
|
|
for app, address := range values {
|
|
app = appcode.Normalize(app)
|
|
address = strings.TrimSpace(address)
|
|
if app == "" || address == "" {
|
|
continue
|
|
}
|
|
normalized[app] = address
|
|
}
|
|
if len(normalized) == 0 {
|
|
return nil
|
|
}
|
|
return normalized
|
|
}
|