Region-aware pricing: GeoIP + VPN-детект + публичный /plans + бот
- modules::geoip — DB-IP Lite (.mmdb, без регистрации/ключа, в отличие от MaxMind) для страны по IP, X4BNet lists_vpn для грубой VPN/датацентр- эвристики. Обе базы скачиваются в рантайме, обновление — фоновая задача в tasks.rs (раз в сутки по умолчанию, GEOIP_REFRESH_INTERVAL). - GET /api/v1/billing/plans (public_router, без auth_guard) — цены в валюте, определённой по IP посетителя (X-Real-IP/X-Forwarded-For, см. nginx-конфиги). VPN/датацентр IP -> всегда базовый USD, чтобы обход региона через любой публичный VPN не обесценивал скидки. - Бот: Bot API не отдаёт IP пользователя вообще — валюта определяется по Telegram language_code. Показ цены — в валюте региона, САМА оплата через CryptoBot остаётся в USD/USDT (провайдер биллит 1:1 к USD-цене тарифа, менять валюту списания нельзя, не меняя сам провайдер).
This commit is contained in:
@@ -40,6 +40,9 @@ argon2 = "0.5"
|
||||
rpassword = "7.5"
|
||||
rust_decimal = { version = "1.42.0", features = ["serde"] }
|
||||
reqwest = { version = "0.11", features = ["json"] }
|
||||
maxminddb = "0.24"
|
||||
ipnet = "2.10"
|
||||
flate2 = "1.0"
|
||||
|
||||
[profile.release]
|
||||
opt-level = 3
|
||||
|
||||
Reference in New Issue
Block a user