Xác minh giao dịch TRON qua API
Hệ thống thanh toán, sàn giao dịch và dApp phải xác nhận các giao dịch TRON theo chương trình trước khi cấp tín dụng cho người dùng. Một txid phát sóng là không đủ — bạn cần có biên nhận thực thi, trạng thái thành công/thất bại và đối với mã thông báo, các sự kiện Transfer đã được giải mã.
Hướng dẫn này bao gồm các vòng xác nhận với TronWeb và TronGrid REST.
Vòng đời giao dịch
- Phát sóng — Đã ký tx vào mempool
- Bao gồm trong khối — điển hình là ~3 giây
- Có biên lai —
getTransactionInfođược điền - Được củng cố — Khối được coi là cuối cùng (chờ có thể định cấu hình)
Các giao dịch không thành công vẫn tiêu tốn phí và trả lại biên lai FAILED.
Nhận giao dịch bằng ID (TronWeb)
async function waitForTx(txid, maxAttempts = 30, delayMs = 2000) {
for (let i = 0; i < maxAttempts; i++) {
const info = await tronWeb.trx.getTransactionInfo(txid);
if (info && Object.keys(info).length > 0) {
return info;
}
await new Promise((r) => setTimeout(r, delayMs));
}
throw new Error('Transaction info not found — timeout');
}
async function isTxSuccess(txid) {
const info = await waitForTx(txid);
return info.receipt?.result === 'SUCCESS';
}
TronGrid NGHỈ LẠI
GET /v1/transactions/{txid}
GET /wallet/gettransactioninfobyid?value={txid}
Thêm tiêu đề TRON-PRO-API-KEY cho mỗi TronGrid hướng dẫn.
Xác thực chi tiết chuyển khoản USDT
Đừng chỉ tin tưởng vào số tiền do khách hàng cung cấp. Phân tích nhật ký:
const USDT = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t';
function parseUsdtTransferFromInfo(txInfo) {
const logs = txInfo.log || [];
for (const log of logs) {
if (tronWeb.address.fromHex(log.address) !== USDT) continue;
// Transfer(address,address,uint256) topic0 = 0xddf252ad...
// Decode topics[1] from, topics[2] to, data value
// Use tronWeb.utils.abi.decodeLog or ethers ABI decoder
}
}
Xác nhận:
- Hợp đồng token = chính thức USDT
to= địa chỉ gửi tiền của bạnvalue= số tiền dự kiến (6 chữ số thập phân)
Giao dịch đang chờ xử lý và thiếu
| Tình huống | Ý nghĩa |
|---|---|
| getTransactionInfo trống | Chưa khai thác - tiếp tục bỏ phiếu |
| Nhận không thành công | Hoàn nguyên, OUT_OF_ENERGY, v.v. |
| Không tìm thấy tx | Txid sai hoặc không bao giờ phát sóng |
Hướng dẫn sử dụng: giao dịch đang chờ xử lý.
kiên cố hóa khối
Đối với tiền gửi có giá trị cao:
const block = await tronWeb.trx.getBlockByNumber(info.blockNumber); // Optionally wait N more blocks via getCurrentBlock()
TRON kết thúc nhanh chóng; nhiều thương gia sử dụng SUCCESS đơn lẻ.
So khớp hồ sơ doanh nghiệp
Dòng tín dụng bình thường:
- Người dùng gửi txid
- Máy chủ xác minh SUCCESS + phân tích chuyển giao
- Kiểm tra txid chưa được ghi có trong cơ sở dữ liệu
- Số dư người dùng tín dụng
- Lưu trữ số khối, dấu thời gian, nhật ký thô
Chẩn đoán giao dịch không thành công
Đọc resMessage / hex kết quả hợp đồng để biết lý do hoàn nguyên. chung:
OUT_OF_ENERGY- Số dư token không đủ
- Hợp đồng bị tạm dừng
Khắc phục sự cố: giao dịch không thành công.
Mẫu tích hợp Webhook
Thăm dò gettransactioninfobyid cứ sau 3 giây cho đến khi blockNumber > 0 hoặc hết thời gian chờ (5 phút). Trên SUCCESS, phát webhook nội bộ. Trên REVERT hoặc hết thời gian chờ, đánh dấu thanh toán không thành công và cảnh báo cho nhóm vận hành.
Xử lý REVERT và kết quả dương tính giả
getTransactionInfo trả về receipt.result = REVERT nếu thực hiện không thành công — không ghi có các khoản thanh toán. Một số người lập chỉ mục trả về trống trong thời gian ngắn trước khi xác nhận - phân biệt biên nhận rỗng (đang chờ xử lý) với REVERT (không thành công). Triển khai thời gian chờ sau 5–10 phút và xếp hàng đánh giá của con người đối với các trường hợp không rõ ràng.
Danh sách kiểm tra khắc phục sự cố
Nếu có sự cố xảy ra trên TRON, hãy xử lý nó như một vấn đề gỡ lỗi có cấu trúc: xác nhận txid chính xác trên chuỗi, xác minh địa chỉ hợp đồng mục tiêu và chỉ sau đó mới quyết định xem liệu lỗi có thể phục hồi được hay không. Trên TRON, nhiều vấn đề “bí ẩn” chỉ đơn giản là một trong số: mạng sai (mainnet so với testnet), hợp đồng mã thông báo sai (USDT giả / mã thông báo có tên tương tự), không đủ tài nguyên (OUT_OF_ENERGY / băng thông) hoặc độ trễ giao diện người dùng/trình lập chỉ mục giữa ví và trình khám phá.
Bắt đầu với các bước kiểm tra dựa trên chuỗi sau:
- Luôn sao chép toàn bộ txid/hash từ ví hoặc explorer của bạn.
- Xác nhận trạng thái kết quả tx trên TronScan (SUCCESS, REVERT, OUT_OF_ENERGY hoặc vẫn đang chờ xử lý).
- Kiểm tra xem địa chỉ người nhận/hợp đồng có khớp với nội dung bạn định gửi hay không.
- Nếu đó là lệnh gọi hợp đồng, hãy xác nhận rằng bộ chọn chức năng và các tham số phù hợp với tiêu chuẩn mã thông báo mà bạn cho rằng mình đang sử dụng (TRC-20 so với TRC-10 so với BEP-20 trên BSC).
Sau đó áp dụng đường dẫn sửa lỗi cho danh mục của bạn:
- Xác nhận trạng thái và thông số giao dịch.
- Xác minh địa chỉ (hợp đồng mã thông báo, người nhận, bộ định tuyến/người chi tiêu).
- Thêm hoặc ủy quyền tài nguyên (Năng lượng/Băng thông) khi lỗi do tài nguyên.
###Những lỗi thường gặp
Các mẫu này gây ra hầu hết các lỗi ở cấp độ người dùng:
- Sử dụng địa chỉ mainnet trên testnet (hoặc ngược lại).
- Sao chép ký hiệu mã thông báo thay vì địa chỉ hợp đồng TRC-20 thực tế.
- Ký sai địa chỉ phê duyệt/chi tiêu do liên kết UI độc hại hoặc lỗi thời.
- Thử lại mà không thay đổi đầu vào bị lỗi (ví dụ: REVERT tiếp tục hoàn nguyên cho đến khi bạn sửa được tham số).
Nếu bạn không chắc chắn, đừng “gửi lại”. Thực hiện một thay đổi có kiểm soát, xác minh trên TronScan rồi tiếp tục.
##Câu hỏi thường gặp
Làm cách nào để biết liệu giao dịch có thực sự được xác nhận hay không?
Sử dụng TronScan và kiểm tra trạng thái kết quả tx. Nhãn “đang chờ xử lý” của ví có thể bị trễ; trạng thái dây chuyền là nguồn gốc của sự thật. Sao chép txid và xác minh SUCCESS/REVERT/OUT_OF_ENERGY, không chỉ văn bản giao diện người dùng.
Tại sao giao diện người dùng khác với TronScan?Một số ví và dApp sử dụng các bộ chỉ mục hoặc lớp bộ đệm khác nhau. Độ trễ ngắn giữa phát sóng và lập chỉ mục là bình thường; so sánh txid và đợi chuỗi ổn định trước khi kết luận thất bại.
Tôi nên làm gì sau REVERT?
Dừng và giải mã cuộc gọi thất bại. Hầu hết REVERT đều do tham số không hợp lệ, địa chỉ hợp đồng sai, thiếu phê duyệt hoặc không khớp giữa tiêu chuẩn và phương thức mã thông báo. Khắc phục nguyên nhân rồi ký lại.
Ký phê duyệt không giới hạn có an toàn không?
Phê duyệt không giới hạn chỉ an toàn đối với các địa chỉ chi tiêu đáng tin cậy mà bạn đã xác minh (nguồn đã xác minh, bộ định tuyến chính xác và hợp đồng mã thông báo dự kiến). Để thử nghiệm, hãy ưu tiên phê duyệt có giới hạn và thu hồi sau khi bạn hoàn thành.
TRON yêu cầu những tài nguyên gì cho cuộc gọi hợp đồng?
Việc thực thi hợp đồng thông minh chủ yếu tiêu thụ Năng lượng, trong khi byte giao dịch tiêu thụ Băng thông. Nếu bạn nhận được OUT_OF_ENERGY, hãy thêm/đóng băng/ủy thác Năng lượng. Nếu băng thông cạn kiệt, hãy tập trung vào việc giữ đủ chất lỏng TRX để phân bổ byte và tài nguyên.
Làm cách nào để giảm phiếu hỗ trợ?
Hiển thị cho người dùng thông báo rõ ràng về “điều gì đã xảy ra” dựa trên trạng thái chuỗi và liên kết trực tiếp đến hướng dẫn có liên quan (đang chờ xử lý, không thành công, hết năng lượng hoặc xác minh). Lưu trữ txid để bạn có thể hòa giải nhanh chóng.
Hướng dẫn liên quan {#có liên quan}
- Chấp nhận API thanh toán USDT
- Hướng dẫn theo dõi giao dịch
- Đọc chi tiết giao dịch
- TRON Tham khảo API HTTP
Câu hỏi thường gặp
TRON cần bao nhiêu xác nhận?
TRON nhanh chóng sử dụng các khối được củng cố — hầu hết các ứng dụng đều coi một biên nhận SUCCESS là lần cuối cùng. Các ứng dụng có giá trị cao có thể chờ quá trình kiên cố hóa khối bổ sung.
Sự khác biệt giữa getTransaction và getTransactionInfo là gì?
getTransaction trả về dữ liệu phát sóng; getTransactionInfo bao gồm biên nhận, phí, Năng lượng sử dụng và kết quả hợp đồng sau khi thực hiện.
Tx có thể hiển thị SUCCESS nhưng sai số tiền không?
Luôn phân tích nhật ký sự kiện - xác minh số tiền và thứ tự khớp của người nhận.
Bỏ phiếu trong bao lâu?
Thường dưới 10 giây. Hết thời gian chờ sau 60–120 giây và yêu cầu người dùng liên kết TronScan.
TronScan so với API?
Dữ liệu chuỗi tương tự. API để tự động hóa; TronScan hướng dẫn để gỡ lỗi thủ công.
Cảm ơn phản hồi của bạn — giúp chúng tôi cải thiện tài liệu.