Yang dapat kamu terima
Hanya TRX native. Token TRC-20, termasuk USDT di TRON, bukan metode pembayaran invoice. Node dasar yang sehat tidak membuktikan ketersediaan riwayat transaksi terindeks atau solidified.
Siapkan tokomu
- Pasang Wholly Crypto, buat proyek dan toko, lalu simpan cadangan dompet secara privat.
- Periksa koneksi yang kompatibel dengan pemindai dan aktifkan chain serta aset yang dimaksud di Toko → Metode pembayaran.
- Atur konfirmasi dan masa berlaku. Uji invoice kecil dan verifikasi penyelesaian sebelum memenuhi pesanan.
Tempat pembayaranmu diterima
Gunakan alamat penerima TRON yang ditampilkan checkout. Deteksi pembayaran membutuhkan sumber riwayat yang kompatibel dengan pemindai; node yang melaporkan tinggi blok sehat tidak cukup. Pertahankan konfigurasi penyedia independen.
Panduan penerimaanPindahkan dana saat kamu siap
TRX native mendukung pengiriman manual dan sweep otomatis. Tinjau biaya sumber daya jaringan dan biaya aktivasi tujuan jika ada dalam pratinjau transfer. Sediakan TRX yang cukup untuk jumlah dan biaya.
Tutorial sweep otomatisBisakah saya menerima USDT-TRC20 di sini?
Tidak. Integrasi ini menerima TRX native, bukan pembayaran invoice TRC-20. Untuk menerima USDT, gunakan metode Ethereum atau Solana terverifikasi yang didukung. Jangan pernah mengirim token TRC-20 untuk membayar invoice TRX.
Pemecahan masalah pembayaran
Periksa jaringan ini terlebih dahulu
Node TRON yang sehat mungkin tidak memiliki riwayat transaksi yang dibutuhkan pemindai. Periksa kesiapan pemindai. Checkout ini menerima TRX, bukan USDT-TRC20.
Pembayaran tidak ditemukan atau tertunda
Cocokkan jaringan, alamat, aset, dan referensi yang diwajibkan dengan invoice. Periksa kesiapan pemindai dan progres konfirmasi. Jangan meminta pembayaran kedua sebelum memeriksa transaksi pertama.
Panduan penerimaanPulihkan atau gabungkan dompet
Simpan cadangan privat dan detail derivasimu. Aplikasi dompet lain mungkin tidak menampilkan setiap alamat penerima. Pengiriman dan pemulihan bergantung pada chain serta format dompet; keduanya tidak dijamin hanya dengan mengimpor kata pemulihan.
Pencadangan & pemulihanBiaya dan verifikasi
Biaya pemrosesan bawaan adalah 1% dari nilai fiat invoice, dibayar dari kredit terpisah. Tarif yang ditetapkan untukmu berlaku. Biaya jaringan dan server terpisah.
Penyedia publik dapat mengalami gangguan atau batas laju. Transaksi yang diajukan atau pengalihan kembali bukan bukti pembayaran. Gunakan status invoice terverifikasi dan notifikasi bertanda tangan.
Kredit pemrosesan API, IPN & webhookKalkulator kurs
Konversikan jumlah
Perkiraan, bukan kuotasi pembayaran. Biaya jaringan, biaya bursa, dan spread merchant tidak termasuk.
Dari mana kurs berasal?
Perkiraan kripto menggunakan harga publik Kraken dalam cache, dengan Binance jika tersedia. Beberapa harga Binance menggunakan USDT sebagai acuan USD. Kurs fiat berasal dari Frankfurter dan merupakan kurs referensi harian, bukan kuotasi perdagangan langsung.
Snapshot diperbarui otomatis. Periksa tanggal sumber di bawah hasilmu. Jumlah yang kamu masukkan tetap di browsermu. Pencantuman aset tidak menjamin dukungan pembayaran.
Kraken · Binance · Frankfurter · Nama & ikon aset: CoinGecko
Buat invoice dengan API
Jalankan contoh ini di servermu. Ganti host API, ID proyek, dan ID toko, serta jaga kerahasiaan kredensial. Jumlah berupa string desimal.
Aktifkan metode di toko terlebih dahulu. Pemilihan mempersempit metode yang diaktifkan; bukan menambahkan aset. Jika tidak ada yang cocok, pengaturan bawaan toko berlaku. Periksa metode yang dikembalikan sebelum menampilkan checkout.
: "${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": "tron",
"asset_tickers": [
"TRX"
]
}
]
}'// 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": "tron",
"asset_tickers": [
"TRX"
]
}
]
}`;
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": "tron",
"asset_tickers": [
"TRX"
]
}
]
}
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": "tron",
"asset_tickers": [
"TRX"
]
}
]
}""".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))