Neler alabilirsin
Yerel HBAR faturaları, fonlamadan sonra Hedera hesabına çözümlenen EVM takma adı kullanır. Ödeme alma geçmişi Mirror REST API'den gelir; EVM relay tek başına yeterli değildir. HTS token'ları kabul edilmez.
Mağazanı kur
- Wholly Crypto'yu kur, proje ve mağaza oluştur, özel cüzdan yedeğini sakla.
- Tarayıcıyla uyumlu bağlantıları kontrol et; Mağaza → Ödeme yöntemleri'nde zinciri ve istediğin varlıkları etkinleştir.
- Onayları ve sona erme süresini ayarla. Küçük bir faturayı test et ve siparişleri karşılamadan önce ödemenin tamamlandığını doğrula.
Ödemelerin nereye gelir
Faturalar ayrı ödeme alma adresleri kullanır. Tam yedeği, adres listesini ve türetme ayrıntılarını sakla; içe aktarılan cüzdan her fatura adresini hemen keşfetmeyebilir.
Ödeme alma kılavuzuHazır olduğunda fonlarını taşı
Manuel gönderimler ve otomatik bakiye aktarımları yerel coin'i destekler. Ücretler ve ağ rezervi veya depolama gereksinimi için yeterli tutar bırak. Yalnızca ödeme alma desteği, sağlayıcının transfer gönderebileceğini kanıtlamaz.
Otomatik bakiye aktarımı eğitimiÖdeme sorunlarını giderme
Önce bu ağı kontrol et
Alıcı takma adı hesap fonlandıktan sonra çözümlenmelidir. HBAR alımlarını doğrulamak için Mirror geçmişi gerekir; giden transferler salt okunur Mirror API'yi değil, uyumlu EVM relay'i kullanır.
Ödeme eksik veya gecikmiş
Ağı, adresi, varlığı ve gereken referansı faturayla eşleştir. Tarayıcının hazır olup olmadığını ve onay ilerlemesini kontrol et. İlk işlemi kontrol etmeden ikinci ödeme isteme.
Ödeme alma kılavuzuCüzdanları geri yükle veya birleştir
Özel yedeğini ve türetme ayrıntılarını sakla. Farklı bir cüzdan uygulaması tüm ödeme alma adreslerini göstermeyebilir. Gönderim ve kurtarma zincire ve cüzdan biçimine bağlıdır; yalnızca kurtarma kelimelerini içe aktarmak ikisini de garanti etmez.
Yedekleme ve geri yüklemeÜ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": "hedera",
"asset_tickers": [
"HBAR"
]
}
]
}'// 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": "hedera",
"asset_tickers": [
"HBAR"
]
}
]
}`;
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": "hedera",
"asset_tickers": [
"HBAR"
]
}
]
}
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": "hedera",
"asset_tickers": [
"HBAR"
]
}
]
}""".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))