TR
VPN panelleri

Marzban VPN için kripto ödemeler

Marzban VPN aboneliklerini SnapEX Pay üzerinden kripto ile satan, kendi sunucunuzda çalışan küçük bir servis. Mağazanız veya Telegram botunuz servisten bir ödeme linki ister, müşteri SnapEX Pay sayfasında öder (TRC20, ERC20, BEP20, Solana, TON veya başka bir ağda USDT ve SnapEX'in o tutar için sunduğu diğer yöntemler); fatura ödenince servis Marzban panelinizde kullanıcıyı oluşturur veya uzatır ve abonelik linkini döndürür.

Modülü indir

Ücretsiz. Sürüm 1.1.0.

Ne yapar

  • Cüzdan ya da blockchain node'u çalıştırmanız gerekmez.
  • POST /v1/checkout bir paket için SnapEX Pay faturası oluşturur ve pay_url döndürür; GET /v1/orders/{invoice_id} durumu ve abonelik URL'sini servisin kendi kayıtlarından (webhook ile güncellenir) döndürür, böylece bot bunu periyodik olarak sorgulayabilir.
  • İmzalı webhook (HMAC-SHA256, zaman damgası için 5 dakikalık zaman aralığı). Webhook gövdesine asla güvenilmez: fatura SnapEX Pay API'sinden yeniden okunur ve kullanıcı yalnızca fatura ödendiğinde oluşturulur.
  • İdempotent: tekrarlanan veya eş zamanlı webhook gönderimleri bir faturayı yalnızca bir kez işler.
  • Yeni kullanıcılar panelinizde inbound'u olan tüm protokolleri alır; mevcut kullanıcılar şimdiki bitiş tarihinden itibaren uzatılır (tarih geçmişse veya kullanıcının bitiş tarihi yoksa şu andan itibaren), trafik paketlerinde ise paketin kotası mevcut limitin veya kullanılan trafiğin hangisi büyükse onun üzerine eklenir.
  • Paketler tek bir ortam değişkeniyle tanımlanır; siparişler SQLite'ta tutulur. Test modunda gerçek para hareket etmez.

Kurulum

  1. Arşivi indirip açın, ardından klasöründe cp .env.example .env komutunu çalıştırın.
  2. SnapEX Pay üye işyeri panelinde invoices.read ve invoices.write yetkilerine sahip bir API anahtarı oluşturun ve SNAPEX_API_KEY değişkenine yazın.
  3. API_TOKEN (örneğin openssl rand -hex 32), MARZBAN_URL ve Marzban yönetici giriş bilgilerini (MARZBAN_USERNAME ve MARZBAN_PASSWORD), paketlerinizi de PLANS değişkenine (id:days:usd:traffic_bytes, 0 bayt = sınırsız) girin.
  4. Başlatın: docker compose up -d, ardından curl http://127.0.0.1:8080/health ile kontrol edin. Servisi bir HTTPS ters proxy'nin arkasına koyun.
  5. SnapEX Pay panelinin “Geliştiriciler” bölümünde webhook URL'sini https://<your service>/webhook olarak ayarlayın, whsec_… imzalama gizli anahtarını (yalnızca bir kez, URL ilk kaydedildiğinde gösterilir) SNAPEX_WEBHOOK_SECRET değişkenine kopyalayın ve servisi yeniden başlatın.
  6. Mağazanızdan veya botunuzdan Authorization: Bearer <API_TOKEN> ile POST /v1/checkout çağırın, pay_url linkini müşteriye gönderin ve abonelik linki için GET /v1/orders/{invoice_id} adresini sorgulayın. Gerçek para olmadan test için SNAPEX_ENVIRONMENT=test ayarlayın.

Ayarlar

SNAPEX_API_KEYinvoices.read ve invoices.write yetkilerine sahip üye işyeri API anahtarı (smk_…).
SNAPEX_WEBHOOK_SECRETWebhook endpoint'inizin imzalama gizli anahtarı (whsec_…).
SNAPEX_ENVIRONMENTlive veya test. Test faturalarında gerçek para hareket etmez.
SNAPEX_FEE_ONSnapEX hizmet komisyonunu kimin ödediği: merchant veya customer.
API_TOKENBotunuzun veya mağazanızın /v1/checkout ve /v1/orders/* adreslerine gönderdiği Bearer token.
MARZBAN_URL, MARZBAN_USERNAME, MARZBAN_PASSWORDPanel URL'si ve yönetici giriş bilgileri (veya hazır bir MARZBAN_TOKEN; token'ların süresi dolar, bu yüzden uzun süre çalışan bir servis için kullanıcı adı ve şifre daha iyidir).
PLANSVirgülle ayrılmış id:days:usd:traffic_bytes, varsayılan month:30:5.00:0,quarter:90:12.00:0.
SNAPEX_PARTNER_IDİsteğe bağlı: modülü kuran entegratörün Partner ID'si (SnapEX Pay referans programı). Modülü kendiniz kurduysanız boş bırakın.

Sorular

Telegram botundan kullanabilir miyim?

Evet. Bot POST /v1/checkout çağırır, pay_url linkini kullanıcıya gönderir ve abonelik linki için GET /v1/orders/{invoice_id} adresini sorgular. Marzban, 3x-ui ve Remnawave için hazır, eksiksiz bir Telegram botu da var.

Tekrar ödeme yapan mevcut kullanıcıya ne olur?

Abonelik şimdiki bitiş tarihinden itibaren uzatılır (tarih geçmişse veya kullanıcının bitiş tarihi yoksa şu andan itibaren); trafik paketlerinde paketin kotası mevcut limitin veya kullanılan trafiğin hangisi büyükse onun üzerine eklenir.

Bir webhook kullanıcıyı iki kez oluşturabilir mi?

Hayır. Tekrarlanan veya eş zamanlı gönderimler bir faturayı yalnızca bir kez işler ve servis herhangi bir işlem yapmadan önce faturayı SnapEX Pay API'sinden yeniden okur.

Ödeme geldiğinde Marzban paneli çalışmıyorsa ne olur?

Webhook işleyicisi 502 döndürür ve SnapEX Pay gönderimi daha sonra yeniden dener.

Neden HTTPS gerekiyor?

SnapEX Pay webhook'ları yalnızca https:// URL'lerine gönderir; bu yüzden servisi nginx, Caddy veya Traefik arkasına koyun.

Kripto ile ödeme almaya hazır mısınız?

Üye işyeri hesabı oluşturun, API anahtarı alın ve modülü bağlayın. Ödeme başına %1 komisyon, aylık ücret yok.