redsys-connect
Version:
A simple and secure NPM package to integrate the RedSys payment gateway with modern web technologies like React, Next.js, and Angular.
183 lines (126 loc) • 6.86 kB
Plain Text
**RedSys-Connect** es un paquete NPM ligero diseñado para simplificar la integración de la pasarela de pagos RedSys en aplicaciones web modernas. Este paquete funciona a la perfección con tecnologías como React, Next.js, Angular y otras.
- **Fácil integración**: Convierte rápidamente los parámetros del comercio a un formato compatible con RedSys.
- **Codificación Base64**: Codifica automáticamente los parámetros en Base64 para una comunicación segura con RedSys.
- **Generación de firma**: Genera la firma HMAC-SHA256 necesaria para las transacciones de RedSys.
- **Formulario de pago personalizable**: Genera y personaliza el formulario de pago según tus necesidades.
Para instalar el paquete, simplemente ejecuta:
```bash
npm install redsys-connect
```
Importar las funciones necesarias primero, importe las funciones necesarias del paquete:
```javascript
import { MerchantParams, orderNumber } from "redsys-connect";
```
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
};
```
Para pasar los _merchantParams_ puedes usar la función _createMerchantParameters_
```javascript
const parametrosDelComercio = createMerchantParameters(params);
```
Debes proporcionar tu clave secreta (RedSys la proporciona):
```javascript
const claveComercio = "your-secret-key";
```
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
);
```
Una vez realizado todo el proceso anterior puede realizar tu formulario, recuerda que los campos no pueden ser visibles:
```HTML
<form
name="formularioPago"
method="POST"
action="https://sis-t.redsys.es:25443/sis/realizarPago">
<input
type="text" hidden name="DS_MERCHANTPARAMETERS" value={parametrosDelComercio}/>
<input type="text" hidden name="DS_SIGNATURE" value={dsSignature} />
<input type="text" name="DS_SIGNATUREVERSION" value={signatureVersion} /> `Puedes importarla de: import { signatureVersion } from "redsys-connect";`
<input type="submit" value="REALIZAR PAGO" />
</form>
```
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
```
Importar las funciones necesarias
```javascript
import { generatePaymentForm, orderNumber } from "redsys-connect";
import { MerchantParams } from "redsys-connect";
```
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
};
```
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";
```
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);
```
Una vez que tengas el HTML del formulario, puedes insertarlo en tu aplicación para que el usuario pueda completar el pago.
```javascript
<div dangerouslySetInnerHTML={{ __html: formHTML }} />
```
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;
```
Para soporte puedes enviarnos un correo a spain@ark-platforms.com
[](https://www.linkedin.com/company/arkplatforms)
[](https://www.instagram.com/arkplatforms/)
[](https://www.facebook.com/arkplatforms)
[](https://wa.me/+34614297204)
[](https://ark-platforms.com)
[](mailto:spain@arkplatforms.com)