feat: Mercuryo gateway, crypto QR deposit, mono products, wallet auto-refresh

- Replace Quickex/Guardarian with Mercuryo (https://mercuryo.io/)
- Add crypto QR code payment option in deposit flow (qrcode package)
- Add is_mono product flag for digital/infinite products
- Mono products: no quantity buttons in bot, always available
- Admin wallet page: auto-refresh balances from blockchain APIs
- Migration 010: add is_mono column to products
- i18n updates for en/de/es
This commit is contained in:
NW
2026-07-08 12:08:13 +01:00
parent 2b30bc4a91
commit f0afada884
24 changed files with 1393 additions and 268 deletions

View File

@@ -53,7 +53,9 @@
"error_loading_districts": "Error loading districts. Please try again.",
"error_loading_categories": "Error loading categories. Please try again.",
"error_loading_product": "Error loading product details. Please try again.",
"not_found": "Location not found. Returning to previous menu."
"not_found": "Location not found. Returning to previous menu.",
"mono_product": "📦 Digital Product",
"infinite_stock": "∞ Always available"
},
"purchase": {
"summary": "🛒 Purchase Summary:",
@@ -103,7 +105,7 @@
"address": "Address",
"network": "Network",
"deposit": "💳 Deposit {{type}}",
"deposit_via_changenow": "💳 Deposit via ChangeNOW",
"deposit_via_crypto": "💳 Deposit via Crypto",
"select_crypto": "🔐 Select cryptocurrency to generate wallet:",
"wallet_generated": "✅ New wallet generated successfully!",
"wallet_type": "Type",
@@ -153,22 +155,28 @@
"next_page": "➡️ Next",
"wallet_not_found": "Wallet not found. Please try again.",
"wallet_not_found_short": "Wallet not found.",
"deposit_changenow_select": "💳 *Deposit via ChangeNOW*\n\nSelect the wallet you want to top up:",
"deposit_select_gateway": "💳 *Deposit via Crypto*\n\nSelect the wallet you want to top up:",
"deposit_select_amount": "💳 *Deposit {{type}}*\n\nSelect the amount (USD) you want to deposit:",
"deposit_title": "💳 *Deposit {{type}} — €{{amount}}*",
"deposit_instructions_title": "📋 *Step\\-by\\-step instructions:*",
"deposit_step1": "1⃣ Tap *Copy Address* below to copy your wallet address",
"deposit_step2": "2Tap *Open ChangeNOW* \\— the amount €{{amount}} and currency {{type}} are already set",
"deposit_step3": "3On ChangeNOW\\, paste the copied address as the receiving wallet",
"deposit_step4": "4Enter your email and create a password when prompted \\— this is *required by law* for card payments \\(KYC verification\\)\\. Your data is protected by ChangeNOW\\'s security",
"deposit_step5": "5Pay with your bank card \\(Visa\\/Mastercard\\)",
"deposit_step2": "2Open Mercuryo via the button below",
"deposit_step3": "3Paste the copied address as the receiving wallet",
"deposit_step4": "4Select the correct currency: *{{type}}* and the amount €{{amount}}",
"deposit_step5": "5Complete the payment with your bank card",
"deposit_step6": "6⃣ Crypto will arrive in your wallet within 5\\-30 minutes",
"deposit_your_address": "🔐 *Your {{type}} wallet address:*",
"deposit_important_title": "⚠️ *Important:*",
"deposit_important1": "• Double\\-check the wallet address before confirming",
"deposit_important2": "• Email \\+ password on ChangeNOW is a standard verification step for card payments \\— don\\'t worry\\, it\\'s safe",
"deposit_important3": "• If crypto doesn\\'t arrive within 30 min \\— check the transaction status in your ChangeNOW email confirmation",
"deposit_open_changenow": "🌐 Open ChangeNOW — €{{amount}} → {{type}}",
"deposit_important2": "• Make sure you select the correct currency in Mercuryo",
"deposit_important3": "• Email \\+ phone may be required by Mercuryo for verification",
"deposit_important4": "• If crypto doesn't arrive within 30 min \\— contact Mercuryo support",
"deposit_open_mercuryo": "💳 Mercuryo",
"deposit_pay_crypto": "💰 Pay with Crypto",
"deposit_crypto_title": "💳 *Deposit {{type}} via Crypto*",
"deposit_crypto_address": "🔐 *Your {{type}} wallet address:*",
"deposit_crypto_instruction": "Send {{amount}} USD in {{type}} to the address above. The QR code contains the payment address.",
"deposit_crypto_scan_qr": "📱 Scan the QR code below to get the wallet address",
"deposit_copy_address": "📋 Copy Address",
"deposit_change_amount": "🔄 Change Amount",
"deposit_choose_different": "💸 Choose Different Wallet",