General
Solana Pay

Solana Pay

Solana Pay

Solana Pay

Solana Pay là một framework thanh toán mã nguồn mở, cho phép các giao dịch tức thì với phí gần như bằng không trên Solana.

Đã được hàng triệu doanh nghiệp tin tưởng thông qua tích hợp Shopify, nó chuyển đổi nền thương mại bằng cách loại bỏ hoàn toàn các trung gian thanh toán truyền thống.

Solana Pay chuẩn hóa việc thanh toán thông qua URL. Thay vì tích hợp ví phức tạp, bạn tạo ra các liên kết đơn giản hoạt động trên mọi ví Solana một cách tự động.

Các chức năng chính

Solana Pay được đặc trưng bởi:

  • Thanh toán trực tiếp: Các khoản thanh toán đi thẳng từ ví khách hàng đến ví thương nhân bằng SOL hoặc bất kỳ SPL token nào. Không có ngân hàng, bộ phận xử lý hoặc trung gian nào nhận phần trăm.
  • Xác nhận ngay lập tức: Các khoản tiền đến ngay lập tức khi được xác nhận nhờ vào việc xử lý giao dịch dưới một giây của Solana.
  • Tương thích toàn cầu: Một triển khai hoạt động với mọi ví và ứng dụng Solana.

Mọi thứ được thông qua bởi hai loại yêu cầu cơ bản:

Yêu cầu Transfer (Các thanh toán đơn giản)

Các URL phi tương tác đối với các giao dịch đã được định nghĩa từ trước. Mọi thứ đều được mã hóa trên URL.

solana:mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN?amount=0.01&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

Hoàn hảo đối với: Các thanh toán trực tuyến, quyên góp, đăng ký, bất kỳ chuyển khoản token đơn giản nào.

Yêu cầu Giao dịch (Các thanh toán động)

Các URL tương tác được tạo thành từ các giao dịch phức tạp ở phía máy chủ.

Ví điện tử thực hiện một yêu cầu HTTP đến máy chủ của bạn, máy chủ sẽ trả về một giao dịch tùy chỉnh được xây dựng với dữ liệu thời gian thực.

Hoàn hảo đối với: NFTs với giá cả động, tương tác DeFi, chương trình khách hàng thân thiết, logic kinh doanh phức tạp.

Các lựa chọn tích hợp

Solana Pay đi kèm với:

  • QR Codes: Thanh toán ngay lập tức tại chỗ
  • Shareable Links: Hoạt động trên bất kỳ nền tảng nào
  • Embedded Buttons: Trải nghiệm thanh toán liền mạch
  • Custom Flows: Giao dịch nhiều bên, truy cập có điều kiện, ký một phần

Vì sao nó quan trọng

Solana Pay thay thế toàn bộ quy trình thanh toán truyền thống bằng các URL đơn giản. Thay vì tích hợp với nhiều ví và xử lý các luồng giao dịch phức tạp, bạn tạo ra các liên kết được chuẩn hóa hoạt động ở mọi nơi một cách tự động.

Luồng thanh toán truyền thống: Khách hàng → Ngân hàng → Bộ phận xử lý thanh toán → Ngân hàng của bạn → Bạn (ngày hôm sau, trừ phí)

Luồng Solana Pay: Khách hàng → Bạn (ngay lập tức, phí gần như bằng không)

Đặc tả Solana Pay về cơ bản chuyển đổi thanh toán blockchain bằng cách thay thế tích hợp ví phức tạp bằng các URL đơn giản, được chuẩn hóa hoạt động ở mọi nơi.

Tham chiếu

Các tham chiếu là một trong những phần quan trọng nhất của quy trình thanh toán bằng Solana Pay. Vì backend của bạn không gửi giao dịch đến mạng mà chỉ trả về phản hồi giao dịch mà ví ký, nên không có chữ ký giao dịch nào để giúp xác định xem thanh toán đã được thực hiện hay chưa.

Một reference là một khóa công khai duy nhất được đính kèm như một tài khoản không ký, không thay đổi trong các giao dịch. Nó không ảnh hưởng đến hành vi giao dịch nhưng phục vụ như một định danh theo dõi.

Dưới đây là quy trình:

Cách nó hoạt động:

  1. Tạo một tham chiếu duy nhất (publickey) cho mỗi yêu cầu thanh toán
  2. Đính kèm nó trong các URL yêu cầu giao dịch của bạn dưới dạng tham số
  3. Thêm nó vào các instruction giao dịch của bạn như một tài khoản không ký
  4. Theo dõi giao dịch bằng cách sử dụng tham chiếu

Bạn có thể sử dụng phương thức RPC getSignaturesForAddress của Solana hoặc hàm bổ trợ findReference của thư viện @solana/pay để xác định các giao dịch chứa tham chiếu của bạn như sau:

useEffect(() => {
    // Poll the network for transactions that include the reference address
    const interval = setInterval(async () => {
        try {
            // Find transactions that include the reference address
            const signatureInfo = await findReference(connection, reference, {
                until: mostRecentNotifiedTransaction.current, // Only look for transactions after the most recent one we've found
                finality: "confirmed",
            });
            // Update the most recent transaction with the transaction we just found
            mostRecentNotifiedTransaction.current = signatureInfo.signature;
            // Toast notification
            displayToast(signatureInfo.signature);
        } catch (e) {
            if (e instanceof FindReferenceError) {
                // No transaction found yet, ignore this error
                return;
            }
            console.error("Unknown error", e);
        }
    }, 1000); // Check for new transactions every second
    
    return () => {
        clearInterval(interval);
    };
}, [reference]);

Tạo mã QR

Chuyển bất kỳ yêu cầu giao dịch nào thành mã QR có thể quét được bằng cách sử dụng thư viện @solana/pay:

import { createQR, encodeURL, TransactionRequestURLFields } from '@solana/pay'; 
 
const urlParams: TransactionRequestURLFields = {
  link: new URL("https://yourapi.com/pay"),
};
const solanaUrl = encodeURL(urlParams);
 
const qr = createQR(
  solanaUrl,
  400,
  "transparent"
);
Nội dung
Xem mã nguồn
Blueshift © 2025Commit: f7a03c2