deploy change, update token system, fix abuses and add admin verify
This commit is contained in:
@@ -18,14 +18,14 @@ pub struct BillingService {
|
||||
// Добавляем Clone вручную, так как dyn Traits не поддерживают derive(Clone) легко
|
||||
impl Clone for BillingService {
|
||||
fn clone(&self) -> Self {
|
||||
// ВАЖНО: В реальном проекте провайдеры стоит обернуть в Arc,
|
||||
// но для простоты структуры мы пересоздаем их при клонировании сервиса
|
||||
// Снова читаем из env при клонировании
|
||||
let master_wallet = std::env::var("TON_MASTER_WALLET")
|
||||
.expect("КРИТИЧЕСКАЯ ОШИБКА: TON_MASTER_WALLET не задан в .env!");
|
||||
|
||||
let mut providers: HashMap<&'static str, Box<dyn PaymentProvider>> = HashMap::new();
|
||||
providers.insert(
|
||||
"TON",
|
||||
Box::new(super::providers::ton::TonProvider {
|
||||
master_wallet: "UQ_MASTER_WALLET_ADDRESS".into(),
|
||||
}),
|
||||
Box::new(super::providers::ton::TonProvider { master_wallet }),
|
||||
);
|
||||
|
||||
Self {
|
||||
@@ -37,12 +37,14 @@ impl Clone for BillingService {
|
||||
|
||||
impl BillingService {
|
||||
pub fn new(repo: Arc<dyn AppRepository>) -> Self {
|
||||
// Читаем адрес из переменной окружения
|
||||
let master_wallet = std::env::var("TON_MASTER_WALLET")
|
||||
.expect("КРИТИЧЕСКАЯ ОШИБКА: TON_MASTER_WALLET не задан в .env!");
|
||||
|
||||
let mut providers: HashMap<&'static str, Box<dyn PaymentProvider>> = HashMap::new();
|
||||
providers.insert(
|
||||
"TON",
|
||||
Box::new(super::providers::ton::TonProvider {
|
||||
master_wallet: "UQ_MASTER_WALLET_ADDRESS".into(),
|
||||
}),
|
||||
Box::new(super::providers::ton::TonProvider { master_wallet }),
|
||||
);
|
||||
|
||||
Self { repo, providers }
|
||||
@@ -135,7 +137,7 @@ impl BillingService {
|
||||
|
||||
// 3. Провайдер лезет в блокчейн и проверяет транзакцию
|
||||
let is_valid = provider
|
||||
.verify_payment(external_tx_id, invoice.amount)
|
||||
.verify_payment(external_tx_id, invoice.amount, &invoice.id.to_string()) // <--- ПЕРЕДАЕМ ID
|
||||
.await?;
|
||||
|
||||
if !is_valid {
|
||||
|
||||
Reference in New Issue
Block a user