An open API service indexing awesome lists of open source software.

https://github.com/majulvez/easyredsys

Librería que facilita la integración con la pasarela de pago Redsys para aplicaciones Java
https://github.com/majulvez/easyredsys

banco compra java pagos

Last synced: 6 months ago
JSON representation

Librería que facilita la integración con la pasarela de pago Redsys para aplicaciones Java

Awesome Lists containing this project

README

          

# EASY REDSYS #

Esta librería facilita la integración con la pasarela de pago Redsys para aplicaciones Java.

Permite realizar compras CES, compras No CES con envío de datos de la tarjeta, autorizaciones, devoluciones, pagos diferidos y pagos recurrentes

##Requisitos##

1. Java 1.8.x
2. Git (opcional)

##Compilación (Opciona)##

./gradlew clean install

## Instalación ##

En el submódulo "integration-example-war" hay un ejemplo de integración de esta librería.

Puedes ver el ejemplo de integración funcionando en esta dirección: https://easyredsys.miguelangeljulvez.com

#### Servidores de aplicaciones testeados ####

Apache Tomcat 8 y 9, Wildfly 12, 13, 14 y 15, Payara 5

###Integrar el jar en tu proyecto y modifica tu aplicación###

Añade como dependencia maven lo siguiente

```

com.miguelangeljulvez.easyredsys
easyredsys-client
1.3.2

```

A continuación, implementa la interfaz AppConfig en una clase llamada por ejemplo AppConfigImpl e introduce los datos de tu pasarela de pago. Por ejemplo:

```
import com.miguelangeljulvez.easyredsys.client.AppConfig;

public class AppConfigImpl implements AppConfig {

@Override
public String getMerchantCode() {
return "061978060";
}

@Override
public String getTerminal() {
return "001";
}

@Override
public String getSecretKey() {
return "23423524234"; //Si testMode está establecido a true, no se usa. Se usa la clave de pruebas por defecto.
}

@Override
public boolean isTestMode() {
return true; //Establécelo a false cuando quieras pasar a real
}

@Override
public void saveNotification(Notification notification) {
// Pon aquí lo que quieras hacer con la notificación recibida del banco. Ver apartado "Notificaciones" es este mismo fichero
}
}
```

**OPCIÓN A - Compra mediante Comercio Electrónico Seguro (los datos de la tarjeta son solicitados por el banco)**

1- Crea la orden de compra en tu aplicación

El pedido puede crearse mediantes POJO

```
OrderCES orderCES = new OrderCES.Builder(AppConfigImpl.class)
.transactionType(TransactionType.AUTORIZACION)
.currency(Currency.EUR)
.consumerLanguage(Language.SPANISH)
.order("")
.amount()
.productDescription("Product description")
.payMethods(PaymentMethod.TARJETA)
.urlOk()
.urlKo()
.urlNotification()
.build();

MessageOrderCESRequest messageOrderCESRequest = new MessageOrderCESRequest().Builder(orderCES).build();
```

2-Crear el formulario de envío para comunicarse con el banco

```




```

3- Crea las páginas de urlOk y urlKo del banco

4- Indica qué hacer con las notificaciones del banco. Ver mas adelante el apartado 'Notificaciones'

**OPCIÓN B - Compra mediante Comercio Electrónico No Seguro (los datos de la tarjeta son solicitados por tu aplicación)**

1- Crea la orden de compra en tu aplicación
```
OrderNoCES orderNoCES = new OrderNoCES.Builder(AppConfigImpl.class)
.transactionType(TransactionType.AUTORIZACION)
.currency(Currency.EUR)
.order()
.amount()
.cardNumber("4548812049400004")
.cvv2("123")
.expiryDate("2012")
.build();

MessageOrderNoCESRequest messageOrderNoCESRequest = new MessageOrderNoCESRequest.Builder(orderNoCES).build();

try {
MessageOrderNoCESResponse messageOrderNoCESResponse = EasyRedsysService.request(messageOrderNoCESRequest);
} catch (OperationException e) {
e.printStackTrace();
}
```

2- Si no se produce ninguna excepción, la petición se ha realizado correctamente.

Si se produjera alguna excepción, la descripción del error aparecerá en los logs. También se puede obtener el código de error desde la excepción:

```
e.getCode();
```

## Notificaciones ##

```

com.miguelangeljulvez.easyredsys
easyredsys-server
1.3.2

```

Las notificaciones se reciben en el método saveNotificacion() de la interfaz AppConfig que has implementado previamente.

Las notificaciones que llegan a ese método han pasado todas las verificaciones y controles de seguridad.

Para publicar los diferentes servicios, deberás copiar el contenido de los ficheros web.xml, sun-jaxws.xml y server-config.wsdd del submódulo "integration-example-war" al directorio WEB-INF de tu aplicación.

### Notificación ON-LINE: síncrona y asíncrona ###
```
orderCES.setDs_merchant_merchantURL("https:////rest/InotificacionSIS");

o desde el builder del constructor

new OrderCES.Builder()
...
.urlNotificacion("https:////rest/InotificacionSIS")
.build()
```
### Notificación ON-LINE: SOAP sin wsdl y con wsdl ###
```
orderCES.setDs_merchant_merchantURL("https:////axis/InotificacionSIS");

o desde el builder del constructor

new OrderCES.Builder()
...
.urlNotificacion("https:////axis/InotificacionSIS")
.build()
```
### Notificación ON-LINE; SOAP literal (recomendada) ###
```
orderCES.setDs_merchant_merchantURL("https:////literal/InotificacionSIS");

o desde el builder del constructor

new OrderCES.Builder()
...
.urlNotificacion("https:////literal/InotificacionSIS")
.build()
```