Lienzo Abierto: una galería de imágenes para aprender, adaptar y hacer tuya
Una galería de imágenes con búsqueda, favoritos e importación local. Código abierto, ilustraciones de ejemplo y un recorrido para adaptarla.
Tutorial funcional para integrar pagos Redsys con tarjeta y Bizum en .NET, con form front, redirección TPV, firma HMAC SHA512 V2 y callbacks.

En este tutorial vas a montar una integración real y funcional de Redsys en .NET para:
Incluye:
Ds_MerchantParameters.URL OK / URL KO.MerchantURL) con validación de firma.Actualizado: 20 de febrero de 2026.
Sí, totalmente viable.
Conclusión técnica (basada en documentación oficial de Redsys):
POST con Ds_SignatureVersion, Ds_MerchantParameters, Ds_Signature).HMAC_SHA512_V2 se puede implementar en .NET sin dependencias raras.DS_MERCHANT_PAYMETHODS = z.Por tanto, no hace falta cambiar a otra tecnología para este caso.
Puedes clonar el proyecto desde:
https://github.com/davidcantonnadales/servidor-backend-redsys-tarjeta-bizum
Estructura principal:
RedsysBizumDemo.Web: aplicación MVC con formulario y callbacks.RedsysBizumDemo.Tests: test de firma contra vector oficial de Redsys.El circuito completo implementado es:
Tarjeta o Bizum.DS_MERCHANT_*.MerchantURLURLOK o URLKODS_MERCHANT_AMOUNT: importe en céntimos.DS_MERCHANT_ORDER: pedido (máx 12 chars, empieza por 4 dígitos).DS_MERCHANT_MERCHANTCODE: FUC.DS_MERCHANT_TERMINAL: terminal.DS_MERCHANT_TRANSACTIONTYPE: 0 (autorización).DS_MERCHANT_CURRENCY: 978 (EUR).DS_MERCHANT_MERCHANTURL: callback online.DS_MERCHANT_URLOK y DS_MERCHANT_URLKO: retorno navegador.DS_MERCHANT_PAYMETHODS = z para forzar Bizum.git clone https://github.com/davidcantonnadales/servidor-backend-redsys-tarjeta-bizum.git
cd servidor-backend-redsys-tarjeta-bizum/solucion
dotnet restore
dotnet build -c Release
dotnet run --project RedsysBizumDemo.Web/RedsysBizumDemo.Web.csproj
Abre:
https://localhost:7206
Redsys no puede llamar a localhost desde internet. Necesitas URL pública:
ngrok).Ejemplo rápido:
ngrok http 5277
Después, actualiza:
Redsys:NotificationBaseUrl en RedsysBizumDemo.Web/appsettings.json
con la URL pública (normalmente HTTPS) de ngrok.
Credenciales de prueba oficiales usadas en el ejemplo:
999008881001978Tarjeta de prueba (entorno test):
454881000000000312/49123En el mismo formulario, pulsa Pagar con Bizum (envía DS_MERCHANT_PAYMETHODS=z).
Usuario demo Bizum de Redsys:
0000000341111En RedsysBizumDemo.Web/Services/RedsysSignature.cs:
Ds_MerchantParameters.Ds_Signature.Además, el proyecto incluye verificación de firma en:
POST /payments/notificationGET/POST /payments/result/okGET/POST /payments/result/koEl test RedsysBizumDemo.Tests/UnitTest1.cs valida la firma con un vector oficial publicado por Redsys.
Ejecuta:
dotnet test -c Release
Si este test falla, no subas a producción.
Regla de este ejemplo:
Ds_Signature correcta).Ds_Response en rango autorizado (0..99).Ese estado se guarda en memoria y se muestra en la home.
MerchantURL inaccesible desde internet: no llegan notificaciones.z, no funcionará sin activación contractual.UseSandbox=false.Integrar Redsys con tarjeta y Bizum en .NET es viable y sólido si respetas tres reglas:
Ds_Response y firma antes de marcar pedido como pagado.