Conceptos básicos de Solana Pay
7 ejemplos de solicitudes de pago y flujos de QR: 4 básicos y 3 intermedios.
Prerrequisitos
npm install @solana/pay @solana/kit@7.0.0Ejemplos básicos
1. URL de solicitud de transferencia
Las URL de Solana Pay codifican el destinatario, el monto y la etiqueta.
import { encodeURL } from "@solana/pay";
import { address } from "@solana/kit";
const url = encodeURL({
recipient: address("MERCHANT_PUBKEY"),
amount: 1_000_000n,
label: "Coffee",
});- Las billeteras analizan las URL para prellenar transferencias.
- Montos en lamports como bigint.
- Esquema HTTPS o solana: dependiendo del contexto.
2. Código QR para TPV
Renderiza la URL como QR para el pago en persona.
import QRCode from "react-qr-code";
// <QRCode value={url.toString()} />- Prueba la distancia de escaneo y la iluminación para eventos.
- Incluye una etiqueta legible por humanos debajo del QR.
- Expirar o rotar URL para facturas de un solo uso cuando sea necesario.
3. Seguimiento de Pubkey de referencia
Adjunta una cuenta de referencia para correlacionar pagos.
// encodeURL({ ..., reference: [referencePubkey] })- Monitoriza la referencia a través de RPC o websocket.
- Referencia única por sesión de pago.
- Consulta Solicitudes de Transacción.
4. Metadatos de visualización del comerciante
Los campos de etiqueta y mensaje mejoran la experiencia del usuario de la billetera.
encodeURL({ label: "Shop", message: "Order #1234", ... });- Mantén el mensaje corto: la interfaz de usuario de la billetera lo trunca.
- Localiza la etiqueta para clientes internacionales.
Ejemplos intermedios
5. Flujo de solicitud de transacción
El servidor devuelve una transacción parcialmente construida en lugar de una transferencia simple.
// GET https://merchant.com/api/solana-pay?account=...- Permite el intercambio o la acuñación en una sola aprobación de billetera.
- Requiere un punto final HTTPS que controles.
- La especificación se superpone con Solana Actions.
6. Verificar pago liquidado
import { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc(process.env.RPC_URL!);
// encuentra tx que menciona referencia + monto- No marques el pedido como pagado basándote en una suposición del lado del cliente.
- Espera un mínimo de compromiso confirmado.
- Maneja pagos parciales explícitamente.
7. Enlace a Acciones / Blinks
Las URL de acciones compartibles se incrustan en publicaciones sociales.
https://actions.example.com/swap?...
- Los Blinks se despliegan en aplicaciones compatibles.
- Consulta Blinks y Actions (the spec).
Versiones de la pila: Esta página se escribió 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 y LiteSVM 0.6.x.