Tương tác với Solana

Trước khi xây dựng luồng thanh toán, bạn cần kết nối với Solana và hiểu cách truy vấn dữ liệu mạng. Hướng dẫn này bao gồm những điều cơ bản: thiết lập kết nối và sử dụng các phương thức RPC bạn sẽ cần cho thanh toán bằng cách sử dụng @solana/kit TypeScript SDK và Solana CLI. Ngoài ra, chúng tôi sẽ đề cập đến những điều cơ bản về việc sử dụng Solana Explorer để xác minh thanh toán thủ công, kiểm tra tài khoản và gỡ lỗi các vấn đề.

Kết nối với Solana

Solana RPC API là cách chính để tương tác với mạng lưới theo chương trình. URL RPC của bạn thực chất là API key để truy cập mạng.

Không sử dụng RPC công khai cho production

Các endpoint công khai (api.mainnet-beta.solana.com, api.devnet.solana.com) bị giới hạn tốc độ, không có SLA và không phù hợp cho các luồng thanh toán production. Sử dụng nhà cung cấp RPC để bảo mật endpoint RPC riêng cho các triển khai production.

Để phát triển và thử nghiệm, bạn có thể sử dụng các endpoint công khai bị giới hạn tốc độ.

Tạo RPC client để tương tác với mạng:

import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
const rpcSubscriptions = createSolanaRpcSubscriptions(
"wss://api.mainnet-beta.solana.com"
);

Để phát triển, hãy sử dụng devnet (https://api.devnet.solana.com) hoặc local validator như Surfpool.

Các phương thức RPC thường dùng

JSON-RPC API của Solana cung cấp các phương thức để truy vấn mạng. Dưới đây là những phương thức bạn sẽ sử dụng nhiều nhất cho các luồng thanh toán.

Lấy thông tin tài khoản

Tất cả các tài khoản trên Solana đều có thể định danh bằng public key của chúng. Sử dụng phương thức RPC getAccountInfo để lấy thông tin về bất kỳ tài khoản nào. Phương thức getAccountInfo trả về một đối tượng AccountInfo, chứa public key của tài khoản, số dư SOL, dữ liệu và một số metadata khác.

Trường data là một chuỗi được mã hóa base64 của dữ liệu tài khoản. Bạn có thể mã hóa nó thành bytes bằng phương thức getBase64Codec từ package @solana/kit và sau đó giải mã nó thành một đối tượng có thể đọc được bằng codec mong đợi (nếu đã biết) cho dữ liệu của tài khoản (ví dụ: getTokenCodec cho token account).

const accountInfo = await rpc
.getAccountInfo(address("7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV"), {
encoding: "base64"
})
.send();
const dataBytes = getBase64Codec().encode(accountInfo.value.data);
const parsedTokenData = getTokenCodec().decode(dataBytes);
console.log(parsedTokenData);

Lấy số dư token

Kiểm tra số dư của token account bằng phương thức RPC getTokenAccountBalance:

const balance = await rpc.getTokenAccountBalance(tokenAccountAddress).send();
console.log(balance.value.uiAmount); // Human-readable (e.g., 100.50)
console.log(balance.value.amount); // Base units (e.g., "100500000")

Xây dựng giao dịch

Mọi giao dịch đều cần một blockhash gần đây để đảm bảo nó hợp lệ (và không bị cũ). Lấy một blockhash trước khi tạo giao dịch thanh toán bằng phương thức RPC getLatestBlockhash:

const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();

Blockhash hết hạn sau ~60 giây. Lấy một blockhash mới ngay trước khi ký và gửi.

Kiểm tra trạng thái giao dịch

Xác minh một giao dịch đã được xử lý bằng phương thức RPC getSignatureStatuses:

const status = await rpc.getSignatureStatuses([signature]).send();
const result = status.value[0];
// result.confirmationStatus: "processed" | "confirmed" | "finalized"

Lấy chi tiết giao dịch

Lấy toàn bộ chi tiết của một giao dịch đã xác nhận bằng phương thức RPC getTransaction:

const transaction = await rpc
.getTransaction(signature, { maxSupportedTransactionVersion: 0 })
.send();

Lịch sử giao dịch

Lấy các giao dịch gần đây cho một địa chỉ bằng phương thức RPC getSignaturesForAddress:

const signatures = await rpc
.getSignaturesForAddress(walletAddress, { limit: 10 })
.send();

Để theo dõi thanh toán toàn diện, xem Chấp nhận thanh toán bao gồm webhook và phát hiện giao dịch thời gian thực.

Khám phá dữ liệu công khai

Sổ cái công khai của Solana có nghĩa là mọi giao dịch, token account và mint đều có thể kiểm toán đầy đủ. Các trình khám phá block cho phép bạn xác minh thanh toán thủ công, kiểm tra tài khoản và gỡ lỗi mà không cần viết code.

Những gì bạn có thể tra cứu:

  • Xác minh thanh toán đã hoàn tất
  • Kiểm tra số dư token account
  • Gỡ lỗi giao dịch thất bại
  • Tra cứu chi tiết mint (supply, decimals, authority)

Các trình khám phá phổ biến: Solana Explorer, SolanaFM, Solscan, Orb

Ví dụ về link:

Is this page helpful?

Mục lục

Chỉnh sửa trang

Quản lý bởi

© 2026 Solana Foundation.
Đã đăng ký bản quyền.
Kết nối