diff --git a/internal/logic/public/portal/purchaseCheckoutLogic.go b/internal/logic/public/portal/purchaseCheckoutLogic.go index 2775547..9e0ea2d 100644 --- a/internal/logic/public/portal/purchaseCheckoutLogic.go +++ b/internal/logic/public/portal/purchaseCheckoutLogic.go @@ -423,17 +423,19 @@ func (l *PurchaseCheckoutLogic) queryExchangeRate(to string, src int64) (amount }{} tool.SystemConfigSliceReflectToStruct(currency, &configs) - // Skip conversion if no exchange rate API key configured - if configs.AccessKey == "" { + l.Infow("queryExchangeRate", logger.Field("to", to), logger.Field("unit", configs.CurrencyUnit), logger.Field("hasAccessKey", strings.TrimSpace(configs.AccessKey) != "")) + + if strings.TrimSpace(configs.AccessKey) == "" { + l.Infof("[PurchaseCheckout] AccessKey is empty, skip conversion") return amount, nil } - // Convert currency if system currency differs from target currency - if configs.CurrencyUnit != to { - result, err := exchangeRate.GetExchangeRete(configs.CurrencyUnit, to, configs.AccessKey, 1) + if strings.TrimSpace(configs.CurrencyUnit) != strings.TrimSpace(to) { + result, err := exchangeRate.GetExchangeRete(configs.CurrencyUnit, to, strings.TrimSpace(configs.AccessKey), 1) if err != nil { return 0, err } + l.Infow("exchangeRate", logger.Field("from", configs.CurrencyUnit), logger.Field("to", to), logger.Field("rate", result)) amount = result * amount } return amount, nil