Neler alabilirsin
Lightning, stablecoin veya zincir üstü adres transferi değil, BTC alır. Her ödeme isteğinin kendi tutarı, ödeme hash'i ve son kullanma süresi vardır. Müşteri Lightning faturasının tamamını öder.
Bitcoin zincir üstü ödemeleriMağazanı kur
Ayarlar → Zincir bağlantıları'nda HTTPS üzerinden LND veya WSS üzerinden Nostr Wallet Connect ekle; ardından bağlantıyı mağazada etkinleştir. Güncel bağlantı politikası herkese açık erişilebilir uç noktalar gerektirir; yalnızca LAN veya Tor adresi doğrudan çalışmaz.
Kimlik bilgileri ve saklama
Kısıtlı ödeme alma kimlik bilgileri kullan; LND yönetici veya harcama macaroon'u asla kullanma. NWC saklamayı değil, bağlantıyı tanımlar: seçilen cüzdanın anahtarları senin adına tutup tutmadığını kontrol et.
Ödemelerin nereye gelir
QR, Bitcoin adresi değil, BOLT11 Lightning faturası içerir. Ödemek için asla zincir üstü işlem gönderme. İsteğin süresi dolduysa yeni fatura oluştur; son tarihi basitçe uzatılamaz.
Ödeme ne zaman tamamlanır?
Wholly Crypto, bağlı cüzdanın bildirdiği ödeme tamamlanmasını doğrular. Açık fatura veya bekletilen HTLC ödeme değildir. Lightning alımında blok onayları veya herkese açık işlem gezgini bağlantısı geçerli değildir.
Hazır olduğunda fonlarını taşı
Giden ödemeler, kanal likiditesi ve yedekler için harici cüzdanı veya düğümü kullan. Wholly Crypto'nun zincir üstü aktarımı Lightning bakiyelerini taşımaz. Proje cüzdanı dışa aktarımı o harici cüzdanı yedeklemez.
Lightning cüzdan kılavuzuÖdeme sorunlarını giderme
Ödeme yönlendirilemiyorsa gelen likiditeyi, cüzdan kullanılabilirliğini ve istek süresini kontrol et. Sağlıklı API yönlendirme garantisi değildir. Belirsiz ödeme sonrasında müşteriden yeniden denemesini istemeden önce tamamlanmayı doğrula.
Ücretler ve doğrulama
Varsayılan işlem ücreti, ayrı kredilerden ödenen fatura itibari para değerinin %1'idir. Sana atanan oran geçerlidir. Ağ ücretleri ve sunucu maliyetleri ayrıdır.
Herkese açık sağlayıcılarda kesinti veya hız sınırı olabilir. Gönderilmiş işlem veya dönüş yönlendirmesi ödeme kanıtı değildir. Doğrulanmış fatura durumunu ve imzalı bildirimleri kullan.
İşlem kredileri API, IPN ve webhook'larKur hesaplayıcı
Tutar dönüştür
Tahmindir, ödeme teklifi değildir. Ağ ücretleri, borsa ücretleri ve satıcı fiyat marjları dahil değildir.
Kurlar nereden geliyor?
Kripto tahminleri, önbelleğe alınmış herkese açık Kraken fiyatlarını ve mevcut olduğunda Binance'i kullanır. Bazı Binance fiyatları USD referansı olarak USDT kullanır. İtibari para kurları Frankfurter'dan gelir ve günlük referans kurlarıdır; canlı işlem teklifleri değildir.
Anlık görüntü otomatik yenilenir. Sonucun altındaki kaynak tarihlerini kontrol et. Girdiğin tutar tarayıcında kalır. Bir varlığın listelenmesi ödeme desteğini garanti etmez.
Kraken · Binance · Frankfurter · Varlık adları ve simgeleri: CoinGecko
API ile fatura oluştur
Bu örnekleri sunucunda çalıştır. API ana makinesini, proje kimliğini ve mağaza kimliğini değiştir; kimlik bilgisini gizli tut. Tutarlar ondalık dizelerdir.
Önce yöntemi mağazada etkinleştir. Seçim, etkin yöntemleri daraltır; varlık eklemez. Hiçbir şey eşleşmezse mağaza varsayılanları uygulanır. Ödeme sayfasını sunmadan önce dönen yöntemleri kontrol et.
: "${WHOLLY_TOKEN:?Set WHOLLY_TOKEN to your server-side API token}"
# Keep this key and the exact body for retries; use a new key for each new invoice.
curl --fail-with-body --max-time 30 \
--request POST \
--url "https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices" \
--header "Authorization: Bearer $WHOLLY_TOKEN" \
--header 'Idempotency-Key: order-1042-attempt-1' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "bitcoin",
"payment_rail": "lightning"
}
]
}'// Node.js 18+ · run on your server, never in browser code.
const token = process.env.WHOLLY_TOKEN;
if (!token) throw new Error("Set WHOLLY_TOKEN");
// Keep this key and the exact body for retries; use a new key for each new invoice.
const body = `{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "bitcoin",
"payment_rail": "lightning"
}
]
}`;
const response = await fetch("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices", {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Idempotency-Key": "order-1042-attempt-1",
"Content-Type": "application/json"
},
body,
redirect: "error",
signal: AbortSignal.timeout(30000)
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());<?php
// PHP 8+ with the cURL extension; run on your server.
$token = getenv('WHOLLY_TOKEN');
if (!$token) { throw new RuntimeException('Set WHOLLY_TOKEN'); }
// Keep this key and the exact body for retries; use a new key for each new invoice.
$body = <<<'JSON'
{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "bitcoin",
"payment_rail": "lightning"
}
]
}
JSON;
$ch = curl_init("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $token, "Idempotency-Key: order-1042-attempt-1", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => $body,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) { throw new RuntimeException(curl_error($ch)); }
curl_close($ch);
if ($status < 200 || $status >= 300) { throw new RuntimeException("HTTP $status: $response"); }
print_r(json_decode($response, true, 512, JSON_THROW_ON_ERROR));# Python 3 · standard library; run on your server.
import json
import os
from urllib.request import Request, build_opener, HTTPRedirectHandler
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
# Keep this key and the exact body for retries; use a new key for each new invoice.
headers = {
"Idempotency-Key": "order-1042-attempt-1",
"Content-Type": "application/json"
}
headers["Authorization"] = "Bearer " + os.environ["WHOLLY_TOKEN"]
body = """{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "bitcoin",
"payment_rail": "lightning"
}
]
}""".encode("utf-8")
request = Request("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices",
method="POST", headers=headers, data=body)
# Non-2xx responses raise HTTPError. Do not retry writes with a new key.
with build_opener(NoRedirect()).open(request, timeout=30) as response:
print(json.load(response))