App de demostración de OrcaRail
Una aplicación de demostración sencilla y de código abierto que muestra cómo aceptar pagos cripto con OrcaRail usando el SDK de Node.js y la página de pago alojada.
Repositorio
- GitHub: https://github.com/OrcaRail/demo
Demos live y sandbox
La misma demo se ejecuta dos veces: la demo live usa redes y tokens de mainnet, y la demo sandbox usa testnets con tokens de prueba gratuitos. El modo depende de la clave de API (ak_test_ significa sandbox). La demo sandbox muestra un indicador Testnet parpadeante y enlaza con la demo live, y la demo live enlaza de vuelta con la demo de testnet. En la demo sandbox puedes terminar el checkout con Simular pago, sin necesidad de wallet.
Funcionalidades
- Reparte y obtén tu comisión: usa una clave de API con un % de comisión para ganar una parte de cada pago; la comisión se muestra en el checkout y se envía a tu dirección de retiro
- Botón «Pagar con cripto» y tarjeta de producto
- Creación y confirmación del Payment Intent con el SDK de Node.js (
@orcarail/node) - Selector de moneda rellenado con
orcarail.rates.getCurrencies({ active: true }) - Cotización fiat mediante
orcarail.rates.getFiatQuote({ amount, currency })para el cuadro de cotización - Redirección a la página de pago alojada de OrcaRail
- Página de éxito con el estado del pago
- Endpoint de webhook para eventos de pago (con verificación de firma)
- Lista para desplegar en Vercel
Stack técnico
- Framework: Next.js (App Router)
- SDK: @orcarail/node
- Estilos: Tailwind CSS
Inicio rápido
-
Clona el repositorio
git clone https://github.com/OrcaRail/demo.gitcd demo -
Instala las dependencias
npm install -
Configura el entorno
Copia
.env.local.exampleen.env.localy define:ORCARAIL_API_KEY: tu clave de API (por ejemploak_live_xxx)ORCARAIL_API_SECRET: tu secreto de API (por ejemplosk_live_xxx)ORCARAIL_WEBHOOK_SECRET: opcional; para verificar la firma de los webhooksNEXT_PUBLIC_APP_URL: la URL de tu app (por ejemplohttp://localhost:3001)
El token y la red se eligen en la interfaz de la demo (o se envían en el cuerpo de la petición a
/api/pay). Opcionalmente, puedes enviarwithdrawal_addressen el cuerpo para cambiar adónde se retiran los fondos de ese pago.Para el desarrollo local con una API local:
ORCARAIL_API_BASE_URL: por ejemplohttp://127.0.0.1:3000/api/v1
-
Ejecuta la demo
npm run devAbre la app (por defecto: http://localhost:3001), haz clic en «Pagar con cripto» y completa el flujo en la app de pago alojada.
Flujo
- El usuario hace clic en «Pagar con cripto» → el frontend llama a
/api/pay. - El backend usa el SDK para crear y confirmar un Payment Intent.
- El usuario es redirigido a la página de pago alojada de OrcaRail.
- El usuario completa el pago on-chain.
- El usuario es redirigido a la página de éxito; la app llama a
/api/completey/api/statuspara marcar el intent como en procesamiento y mostrar el estado. - Tu webhook en
/api/webhooksrecibe eventos comopayment_intent.completedypayment_intent.processing.
Webhooks
La demo incluye una ruta de webhook en /api/webhooks que:
- Verifica la cabecera
x-webhook-signaturecon tu secreto de webhook - Gestiona los eventos:
payment_intent.completed,payment_intent.processing,payment_intent.canceled,payment_intent.requires_payment_method,payment_intent.requires_confirmation
Configura la URL de tu webhook en el panel de OrcaRail (por ejemplo https://your-app.vercel.app/api/webhooks).
Desplegar en Vercel
- Sube la demo a tu GitHub e importa el proyecto en Vercel.
- Añade las mismas variables de entorno en la configuración del proyecto de Vercel.
- Define
NEXT_PUBLIC_APP_URLcon tu URL de Vercel. - Despliega. Vercel detectará Next.js y configurará la compilación.
Consulta también
- SDK de Node.js: instala
@orcarail/nodee intégralo en tu app - Payment Intents: conceptos y flujo
- API de precios: cotización fiat y monedas
- Webhooks: eventos y configuración
- Primeros pasos: cuenta y claves de API