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.
Ücretsiz. Sürüm 1.1.0.
Ne yapar
- Cüzdan ya da blockchain node'u çalıştırmanız gerekmez.
POST /v1/checkoutbir paket için SnapEX Pay faturası oluşturur vepay_urldö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
- Arşivi indirip açın, ardından klasöründe
cp .env.example .envkomutunu çalıştırın. - SnapEX Pay üye işyeri panelinde
invoices.readveinvoices.writeyetkilerine sahip bir API anahtarı oluşturun veSNAPEX_API_KEYdeğişkenine yazın. API_TOKEN(örneğinopenssl rand -hex 32),MARZBAN_URLve Marzban yönetici giriş bilgilerini (MARZBAN_USERNAMEveMARZBAN_PASSWORD), paketlerinizi dePLANSdeğişkenine (id:days:usd:traffic_bytes,0bayt = sınırsız) girin.- Başlatın:
docker compose up -d, ardındancurl http://127.0.0.1:8080/healthile kontrol edin. Servisi bir HTTPS ters proxy'nin arkasına koyun. - SnapEX Pay panelinin “Geliştiriciler” bölümünde webhook URL'sini
https://<your service>/webhookolarak ayarlayın,whsec_…imzalama gizli anahtarını (yalnızca bir kez, URL ilk kaydedildiğinde gösterilir)SNAPEX_WEBHOOK_SECRETdeğişkenine kopyalayın ve servisi yeniden başlatın. - Mağazanızdan veya botunuzdan
Authorization: Bearer <API_TOKEN>ilePOST /v1/checkoutçağırın,pay_urllinkini müşteriye gönderin ve abonelik linki içinGET /v1/orders/{invoice_id}adresini sorgulayın. Gerçek para olmadan test içinSNAPEX_ENVIRONMENT=testayarlayın.
Ayarlar
| SNAPEX_API_KEY | invoices.read ve invoices.write yetkilerine sahip üye işyeri API anahtarı (smk_…). |
|---|---|
| SNAPEX_WEBHOOK_SECRET | Webhook endpoint'inizin imzalama gizli anahtarı (whsec_…). |
| SNAPEX_ENVIRONMENT | live veya test. Test faturalarında gerçek para hareket etmez. |
| SNAPEX_FEE_ON | SnapEX hizmet komisyonunu kimin ödediği: merchant veya customer. |
| API_TOKEN | Botunuzun veya mağazanızın /v1/checkout ve /v1/orders/* adreslerine gönderdiği Bearer token. |
| MARZBAN_URL, MARZBAN_USERNAME, MARZBAN_PASSWORD | Panel 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). |
| PLANS | Virgü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.
Diğer entegrasyonlar
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.