Saltar al contenido principal

Entorno local

Hoy es el único ambiente de pruebas autocontenido: levanta la pasarela completa en tu máquina, con un simulador de PSE en lugar de Akua.

Requisitos​

podman (o Docker), kind, kubectl, dotnet 10 y Node 22 para construir las imágenes. Un cluster kind existente (por defecto kind-pe-test).

Levantar​

Desde engine/payment-engine-dotnet:

# 1. Construir las imágenes con el tag `kind`
deploy/scripts/build-push.sh -t kind --targets api,web,worker,seed,attestation,docs --frontend
podman build --format docker -t inteclatamcr/pse-sandbox:kind ../../pse-sandbox

# 2. Cargarlas en el cluster, desplegar infraestructura, secretos de prueba, migración y seed
deploy/scripts/kind-local.sh up --frontend

# 3. Abrir los accesos (port-forward) — déjalo corriendo
deploy/scripts/kind-local.sh forward

El script exige un contexto de kind explícito, genera credenciales aleatorias de prueba en el cluster (nada va a git) y no toca otros namespaces.

Direcciones locales​

ServicioURL
Página de pagohttp://localhost:18080
Keycloakhttp://localhost:18081 (también /keycloak/ desde el checkout y los portales)
Respuesta de pago (PSE)http://localhost:18082
APIhttp://localhost:18083
Checkout (links de pago, app Mo$i embebible)http://localhost:18084
Este sitiohttp://localhost:18085
Banco simulado de PSEhttp://localhost:18090
Portal de comercios / administraciónhttp://localhost:19080 / http://localhost:19081

Credenciales de prueba (solo local)​

Estas credenciales solo existen en el kind local (vienen del realm de desarrollo) y no sirven en ningún otro ambiente:

QuéValor
Comercio de ejemplo (Gran Kiosko) — client_id00000000-0000-0000-0000-0000000000a1
Comercio de ejemplo — client_secretsandbox-merchant-dev-secret-change-me
Usuario del portal de comercioskiosko@grankiosko.com
Administradoradmin@crezcamos.com

Primer recorrido​

export KEYCLOAK=http://localhost:18081 API=http://localhost:18083
TOKEN=$(curl -s -X POST "$KEYCLOAK/realms/payment-engine/protocol/openid-connect/token" \
-d grant_type=client_credentials \
-d client_id=00000000-0000-0000-0000-0000000000a1 \
-d client_secret=sandbox-merchant-dev-secret-change-me | python3 -c 'import sys,json;print(json.load(sys.stdin)["access_token"])')

curl -s -X POST "$API/api/payment-links" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/vnd.api+json" \
-d '{"data":{"type":"payment_link","attributes":{"concept":"Prueba","description":"Prueba","amount":"30000","expires_at":"2030-01-01T00:00:00Z","accepted_payment_methods":["pse"]}}}'

Abre la url del resultado en el navegador, elige PSE, completa el formulario y decide el resultado en el banco simulado. Para ver la notificación, registra un webhook hacia un receptor tuyo.

Qué no puedes probar aquí​

MedioEstado en el entorno local
PSECompleto, con el simulador.
TarjetaNo: el simulador no implementa la creación del checkout de Akua (/v1/links); el pagador ve "No pudimos iniciar el pago con tarjeta".
Cuenta Crezcamos / Bre-BEl inicio es una simulación; para probar la confirmación envía a mano el webhook de confirmación.