आप क्या प्राप्त कर सकते हैं
नेटिव SOL और सत्यापित क्लासिक SPL टोकन समर्थित हैं, जिनमें मेल खाते USDC/USDT मिंट भी शामिल हैं। Token-2022 और उसके एक्सटेंशन स्वीकार नहीं किए जाते। शुल्क और टोकन खाता बनाने के लिए SOL रखें; चेकआउट पर दिखे पते और भुगतान अनुरोध का इस्तेमाल करें।
दुकान सेट करें
- Wholly Crypto इंस्टॉल करें, प्रोजेक्ट व दुकान बनाएँ और निजी वॉलेट बैकअप रखें।
- स्कैनर-संगत कनेक्शन जाँचें और दुकान → भुगतान तरीके में चेन व इच्छित एसेट सक्षम करें।
- पुष्टियाँ और समाप्ति सेट करें। छोटा इनवॉइस जाँचें और ऑर्डर पूरे करने से पहले निपटान सत्यापित करें।
आपके भुगतान कहाँ आते हैं
इनवॉइस पर दिखाए गए सटीक प्राप्ति पते और भुगतान अनुरोध का इस्तेमाल करें। टोकन खाते और उसके मालिक के पते को एक-दूसरे की जगह इस्तेमाल नहीं कर सकते। एसेट चालू करते समय टिकर के साथ मिंट की पुष्टि भी करें।
प्राप्ति गाइडतैयार होने पर फंड भेजें
अपने Solana वॉलेट में मैन्युअल भेजें या ऑटोमैटिक स्वीप सेट करें। लेनदेन शुल्क और टोकन खाता बनाने के लिए SOL रखें। पहले ट्रांसफ़र से पहले गंतव्य, खाते की आवश्यकताएँ और कोट किया खर्च देखें।
ऑटोमैटिक स्वीप ट्यूटोरियलक्या हर Solana टोकन काम करता है?
नहीं। प्राप्ति और भेजने के अडैप्टर सत्यापित क्लासिक SPL टोकन समर्थित करते हैं। Token-2022 और उसके एक्सटेंशन स्वीकार नहीं हैं। मार्केट कैटलॉग में टोकन मिलने से वह समर्थित भुगतान विधि नहीं बन जाता।
भुगतान समस्या निवारण
पहले यह नेटवर्क जाँचें
केवल प्रतीक नहीं, मिंट और टोकन खाते का मालिक जाँचें। Token-2022 समर्थित नहीं है। शुल्क और खाता बनाने के लिए SOL उपलब्ध रखें।
भुगतान गायब या देर से है
नेटवर्क, पता, एसेट और ज़रूरी संदर्भ इनवॉइस से मिलाएँ। स्कैनर तैयारी और पुष्टि प्रगति जाँचें। पहला लेनदेन जाँचे बिना दूसरा भुगतान न माँगें।
प्राप्ति गाइडवॉलेट बहाल करें या फंड समेकित करें
निजी बैकअप और derivation विवरण रखें। अलग वॉलेट ऐप हर प्राप्ति पता न दिखाए। भेजना और रिकवरी चेन व वॉलेट फ़ॉर्मैट पर निर्भर हैं; केवल रिकवरी शब्द आयात से किसी की गारंटी नहीं।
बैकअप और रीस्टोरशुल्क और सत्यापन
डिफ़ॉल्ट प्रोसेसिंग शुल्क इनवॉइस फ़िएट मूल्य का 1%, अलग क्रेडिट से चुकता है। आपकी असाइन दर लागू है। नेटवर्क शुल्क और सर्वर खर्च अलग हैं।
सार्वजनिक प्रदाताओं में रुकावट या रेट लिमिट हो सकती है। भेजा लेनदेन या वापसी रीडायरेक्ट भुगतान प्रमाण नहीं। सत्यापित इनवॉइस स्थिति और हस्ताक्षरित सूचनाएँ इस्तेमाल करें।
प्रोसेसिंग क्रेडिट API, IPN और वेबहुकदर कैलकुलेटर
राशि बदलें
यह अनुमान है, भुगतान की तय दर नहीं। नेटवर्क शुल्क, एक्सचेंज शुल्क और मर्चेंट का स्प्रेड शामिल नहीं हैं।
दरें कहाँ से आती हैं?
क्रिप्टो अनुमानों में Kraken की कैश की गई सार्वजनिक कीमतें और जहाँ उपलब्ध हों वहाँ Binance की कीमतें इस्तेमाल होती हैं। Binance की कुछ कीमतें USD के संदर्भ के रूप में USDT का इस्तेमाल करती हैं। फ़िएट दरें Frankfurter से आती हैं और रोज़ की संदर्भ दरें हैं, लाइव ट्रेडिंग कोट नहीं।
स्नैपशॉट अपने आप रीफ़्रेश होता है। अपने परिणाम के नीचे स्रोत की तारीखें देखें। दर्ज की गई राशि आपके ब्राउज़र में ही रहती है। एसेट सूची में होने से भुगतान समर्थन की गारंटी नहीं मिलती।
Kraken · Binance · Frankfurter · एसेट के नाम और आइकन: CoinGecko
API से इनवॉइस बनाएँ
उदाहरण अपने सर्वर पर चलाएँ। API होस्ट, प्रोजेक्ट ID और दुकान ID बदलें और क्रेडेंशियल निजी रखें। राशियाँ दशमलव स्ट्रिंग हैं।
पहले दुकान में तरीका सक्षम करें। चयन सक्षम तरीके कम करता है; एसेट नहीं जोड़ता। कोई मेल न हो तो दुकान डिफ़ॉल्ट लागू। चेकआउट दिखाने से पहले लौटे तरीके जाँचें।
: "${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": "solana",
"asset_tickers": [
"SOL"
]
}
]
}'// 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": "solana",
"asset_tickers": [
"SOL"
]
}
]
}`;
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": "solana",
"asset_tickers": [
"SOL"
]
}
]
}
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": "solana",
"asset_tickers": [
"SOL"
]
}
]
}""".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))