Noções Básicas de Solana Pay
7 exemplos para payment requests e fluxos de QR - 4 básicos e 3 intermediários.
Pré-requisitos
npm install @solana/pay @solana/kit@7.0.0Exemplos Básicos
1. URL de Transfer Request
URLs Solana Pay codificam destinatário, valor e label.
import { encodeURL } from "@solana/pay";
import { address } from "@solana/kit";
const url = encodeURL({
recipient: address("MERCHANT_PUBKEY"),
amount: 1_000_000n,
label: "Coffee",
});- Wallets interpretam URLs para preencher transferências.
- Valores em lamports como bigint.
- HTTPS ou esquema solana: conforme contexto.
2. QR Code para PDV
Renderize URL como QR para checkout presencial.
import QRCode from "react-qr-code";
// <QRCode value={url.toString()} />- Teste distância de scan e iluminação para eventos.
- Inclua label legível sob o QR.
- Expire ou rotacione URLs para faturas únicas quando necessário.
3. Rastreamento com Pubkey de Referência
Anexe conta de referência para correlacionar pagamentos.
// encodeURL({ ..., reference: [referencePubkey] })- Monitore referência via RPC ou websocket.
- Referência única por sessão de checkout.
- Veja Transaction Requests.
4. Metadados de Exibição do Comerciante
Campos label e message melhoram UX da wallet.
encodeURL({ label: "Shop", message: "Order #1234", ... });- Mantenha message curta - UI da wallet trunca.
- Localize label para clientes internacionais.
Exemplos Intermediários
5. Fluxo de Transaction Request
Servidor retorna transação parcialmente construída em vez de transferência simples.
// GET https://merchant.com/api/solana-pay?account=...- Permite swap ou mint em uma aprovação da wallet.
- Requer endpoint HTTPS que você controla.
- Spec sobrepõe-se a Solana Actions.
6. Verificar Pagamento Liquidado
import { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc(process.env.RPC_URL!);
// encontre tx mencionando referência + valor- Não marque pedido como pago por palpite no client.
- Espere commitment confirmed no mínimo.
- Trate pagamentos parciais explicitamente.
7. Link para Actions / Blinks
URLs de action compartilháveis embutem em posts sociais.
https://actions.example.com/swap?...
- Blinks fazem unfurl em apps suportados.
- Veja Blinks e Actions (a spec).
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.