A simple and secure NPM package to integrate the RedSys payment gateway with modern web technologies like React, Next.js, and Angular.
npm install redsys-connectbash
npm install redsys-connect
`
Uso de RedSys-Connect con Formulario propio
Importar las funciones necesarias primero, importe las funciones necesarias del paquete:
`javascript
import { MerchantParams, orderNumber } from "redsys-connect";
`
$3
Debes definir los parámetros del comercio que se enviarán a RedSys. Estos parámetros son requeridos por la API de RedSys para la transacción.
`javascript
const params: MerchantParams = {
amount: '1000', // Importe en céntimos (p. ej., 10,00 EUR = 1000)
currency: 'EUR', // código de moneda
merchantCode: '123456789', // Su código de comerciante de RedSys
merchantUrl: 'https://your-merchant-url.com', // La URL de tu comercio
order: orderNumber(), // Orden - La orden se ppuede generar automaticamente
terminal: '1', // número de terminal
transactionType: '0', // tipo de transacción
urlPaymentDenied: 'https://your-site.com/payment-denied', // URL de pago denegado
urlPaymentSuccess: 'https://your-site.com/payment-success', // URL de pago exitoso
};
`
$3
Para pasar los _merchantParams_ puedes usar la función _createMerchantParameters_
`javascript
const parametrosDelComercio = createMerchantParameters(params);
`
$3
Debes proporcionar tu clave secreta (RedSys la proporciona):
`javascript
const claveComercio = "your-secret-key";
`
$3
RedSys requiere que los datos enviados esten en Base64, por lo cual para generar la firma puedes hacerlo usando _createMerchantSignature_
`javascript
const dsSignature = createMerchantSignature(
params,
parametrosDelComercio,
claveComercio
);
`
$3
Una vez realizado todo el proceso anterior puede realizar tu formulario, recuerda que los campos no pueden ser visibles:
`HTML
name="formularioPago"
method="POST"
action="https://sis-t.redsys.es:25443/sis/realizarPago">
type="text" hidden name="DS_MERCHANTPARAMETERS" value={parametrosDelComercio}/>
Puedes importarla de: import { signatureVersion } from "redsys-connect";
`
$3
Las url para desarrollo es:
`bash
https://sis-t.redsys.es:25443/sis/realizarPago
`
para produción es:
`bash
https://sis.redsys.es/sis/realizarPago
`
Formulario integrado
Importar las funciones necesarias
`javascript
import { generatePaymentForm, orderNumber } from "redsys-connect";
import { MerchantParams } from "redsys-connect";
`
$3
Define un objeto MerchantParams con los parámetros necesarios para crear el formulario de pago. A continuación se muestran algunos de los parámetros clave que debes configurar:
`javascript
const params: MerchantParams = {
amount: '1000', // Importe en céntimos (p. ej., 10,00 EUR = 1000)
currency: 'EUR', // código de moneda
merchantCode: '123456789', // Su código de comerciante de RedSys
merchantUrl: 'https://your-merchant-url.com', // La URL de tu comercio
order: orderNumber(), // Orden - La orden se ppuede generar automaticamente
terminal: '1', // número de terminal
transactionType: '0', // tipo de transacción
urlPaymentDenied: 'https://your-site.com/payment-denied', // URL de pago denegado
urlPaymentSuccess: 'https://your-site.com/payment-success', // URL de pago exitoso
};
`
$3
La clave de comercio es un valor base64 que se utiliza para firmar el formulario de pago. Este valor es proporcionado por Redsys y se utiliza para garantizar la integridad y seguridad de la transacción.
`javascript
const claveComercio = " TU CLAVE";
`
$3
Llama a la función _generatePaymentForm()_ para generar el formulario de pago. Asegúrate de proporcionar los parámetros necesarios, incluyendo la clave de comercio, si estás en un entorno de desarrollo _(dev = true)_, y el texto personalizado para el botón de pago.
`javascript
const dev = true;
const submitText = "PAGAR AHORA"; // Llamada a la acción
const formHTML = generatePaymentForm(params, claveComercio, dev, submitText);
`
$3
Una vez que tengas el HTML del formulario, puedes insertarlo en tu aplicación para que el usuario pueda completar el pago.
`javascript
`
$3
Si estás listo para producción, debes cambiar el parámetro dev a false y utilizar los valores correctos de Redsys para producción.
`javascript
const dev = false;
``