Skip to content

Commit

Permalink
Se agrega a la documentación el consumo de los nuevos servicios de ca…
Browse files Browse the repository at this point in the history
…ncelación. Eliminación de comentarios. Fix en el request de cancelación.
  • Loading branch information
JuanGamezSW committed Aug 31, 2018
1 parent 1742e8a commit 4f2b722
Show file tree
Hide file tree
Showing 43 changed files with 2,493 additions and 645 deletions.
281 changes: 278 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@


[![Smarter Web](http://sw.com.mx/images/logo.png)](http://sw.com.mx/)

Expand Down Expand Up @@ -328,7 +327,7 @@ try {
```


# CANCELACIÓN #
# Cancelación #

## Cancelacion CSD ##
Recibe los archivos CSD y KEY en Base64, password, asi como el rfc emisor y el UUID del CFDI a cancelar
Expand Down Expand Up @@ -412,7 +411,7 @@ System.out.println(response.messageDetail);
## Validación Xml ##
Recibe el Xml del CFDI a validar.

>La respuesta vendrá representada con datos planos y un par de listas anidadas. Para obtener la información de las mismas se iterará con "for".
>La respuesta vendrá representada con datos planos y un par de listas anidadas. Para obtener la información de las mismas se iterará.
Ejemplo de uso

Expand Down Expand Up @@ -503,4 +502,280 @@ System.out.println(response.unlimited);
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

# Status CFDI #
Método necesario para conocer el estado de un CFDI a través del servicio de consulta del SAT.
Será necesario conocer el RFC emisor, RFC receptor, total de la factura, y UUID de la factura que vamos a consultar. [Este servicio es consumido directamente del SAT].
```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
StatusCancelationResponse response = null;
response = (StatusCancelationResponse) app.StatusCancelation("LSO1306189R5", "LSO1306189R5", "1.16", "E0AAE6B3-43CC-4B9C-B229-7E221000E2BB");
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.codigoEstatus);
System.out.println(response.estado);
System.out.println(response.esCancelable);
System.out.println(response.estatusCancelacion);
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

# CFDI Relacionados #
Método necesario para conocer los CFDI relacionados que existen a una factura. Con el nuevo método de cancelación, no se podrá cancelar una factura si existen CFDI que lo relacionen.

## CFDI Relacionados por CSD ##
Para el consumo a través de este método necesitaremos el UUID de la factura, RFC emisor, Certificado en base64, Llave en base64 y Password del Certificado.
```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
CfdiRelacionadosResponse response = null;
response = (CfdiRelacionadosResponse) app.CfdiRelacionadosCSD(uuid, password_csd, rfc, b64Cer, b64Key);
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.resultado);
LinkedList<RelacionData> padres = (LinkedList<RelacionData>) response.uuidsRelacionadosPadres;
if(padres != null) {
for (int i = 0; i < padres.size(); i++) {
RelacionData datos = padres.get(i);
System.out.println(datos.uuid);
System.out.println(datos.rfcEmisor);
System.out.println(datos.rfcReceptor);
}
}
LinkedList<RelacionData> hijos = (LinkedList<RelacionData>) response.uuidsRelacionadosHijos;
if(hijos != null) {
for (int i = 0; i < hijos.size(); i++) {
RelacionData datos = hijos.get(i);
System.out.println(datos.uuid);
System.out.println(datos.rfcEmisor);
System.out.println(datos.rfcReceptor);
}
}
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

## CFDI Relacionados por PFX ##
Para el consumo a través de este método necesitaremos el UUID de la factura, RFC emisor, PFX en base64 y Password del Certificado.
```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
CfdiRelacionadosResponse response = null;
response = (CfdiRelacionadosResponse) app.CfdiRelacionadosPFX(uuid, password_csd, rfc, b64Pfx);
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.resultado);
LinkedList < RelacionData > padres = (LinkedList < RelacionData > ) response.uuidsRelacionadosPadres;
if (padres != null) {
for (int i = 0; i < padres.size(); i++) {
RelacionData datos = padres.get(i);
System.out.println(datos.uuid);
System.out.println(datos.rfcEmisor);
System.out.println(datos.rfcReceptor);
}
}
LinkedList < RelacionData > hijos = (LinkedList < RelacionData > ) response.uuidsRelacionadosHijos;
if (hijos != null) {
for (int i = 0; i < hijos.size(); i++) {
RelacionData datos = hijos.get(i);
System.out.println(datos.uuid);
System.out.println(datos.rfcEmisor);
System.out.println(datos.rfcReceptor);
}
}
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

## CFDI Relacionados por XML ##
Para el consumo a través de este método necesitaremos el XML.
```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
CfdiRelacionadosResponse response = null;
response = (CfdiRelacionadosResponse) app.CfdiRelacionadosXML(xmlRelacionados);
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.resultado);
LinkedList < RelacionData > padres = (LinkedList < RelacionData > ) response.uuidsRelacionadosPadres;
if (padres != null) {
for (int i = 0; i < padres.size(); i++) {
RelacionData datos = padres.get(i);
System.out.println(datos.uuid);
System.out.println(datos.rfcEmisor);
System.out.println(datos.rfcReceptor);
}
}
LinkedList < RelacionData > hijos = (LinkedList < RelacionData > ) response.uuidsRelacionadosHijos;
if (hijos != null) {
for (int i = 0; i < hijos.size(); i++) {
RelacionData datos = hijos.get(i);
System.out.println(datos.uuid);
System.out.println(datos.rfcEmisor);
System.out.println(datos.rfcReceptor);
}
}
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

## CFDI Relacionados por UUID ##
Para el consumo a través de este método necesitaremos el UUID de la factura, así como el RFC del Emisor.
```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
CfdiRelacionadosResponse response = null;
response = (CfdiRelacionadosResponse) app.CfdiRelacionadosUUID(uuid, rfc);
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.resultado);
LinkedList < RelacionData > padres = (LinkedList < RelacionData > ) response.uuidsRelacionadosPadres;
if (padres != null) {
for (int i = 0; i < padres.size(); i++) {
RelacionData datos = padres.get(i);
System.out.println(datos.uuid);
System.out.println(datos.rfcEmisor);
System.out.println(datos.rfcReceptor);
}
}
LinkedList < RelacionData > hijos = (LinkedList < RelacionData > ) response.uuidsRelacionadosHijos;
if (hijos != null) {
for (int i = 0; i < hijos.size(); i++) {
RelacionData datos = hijos.get(i);
System.out.println(datos.uuid);
System.out.println(datos.rfcEmisor);
System.out.println(datos.rfcReceptor);
}
}
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

# Consulta Pendientes por Aceptar/Rechazar #
Este servicio devuelve una lista con los UUID que tiene pendientes por Aceptación/Rechazo un RFC.
Para el consumo de este método necesitaremos el RFC del cual consultaremos las facturas que tiene por Aceptar/Rechazar.
```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
String rfc = "LAN7008173R5";
PendientesCancelarResponse response = null;
response = (PendientesCancelarResponse) app.PendientesPorCancelar(rfc);
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
System.out.println(response.message);
System.out.println(response.CodStatus);
List < String > uuids = (LinkedList < String > ) response.UUIDS;
if (uuids != null) {
for (int i = 0; i < uuids.size(); i++) {
String datos = uuids.get(i);
System.out.println(datos);
}
}
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

# Aceptar/Rechazar #
Método para Aceptar o Rechazar una o más facturas.

## Aceptar/Rechazar CSD #
Para el consumo a través de este método necesitaremos el un **Map** con los UUID y la acción a realizar, **password** del certificado, **RFC** emisor, certificado en base64, llave en base64.

```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
Map < String, String > uuids = new HashMap < String, String > ();
uuids.put("06a46e4b-b154-4c12-bb77-f9a63ed55ff2", "Aceptacion");
AceptarRechazarCancelationResponse response = null;
response = (AceptarRechazarCancelationResponse) app.AceptarRechazarCancelacionCSD(uuids, password_csd, rfc, b64Cer, b64Key);
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
LinkedList < CancelationData > folios = (LinkedList < CancelationData > ) response.folios;
if (folios != null) {
for (int i = 0; i < folios.size(); i++) {
CancelationData datos = folios.get(i);
System.out.println(datos.uuid);
System.out.println(datos.estatusUUID);
System.out.println(datos.respuesta);
}
}
System.out.println(response.acuse);
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

## Aceptar/Rechazar PFX #
Para el consumo a través de este método necesitaremos el un **Map** con los UUID y la acción a realizar, **password** del certificado, **RFC** emisor, **PFX** en base64.

```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
Map < String, String > uuids = new HashMap < String, String > ();
uuids.put("06a46e4b-b154-4c12-bb77-f9a63ed55ff2", "Aceptacion");
AceptarRechazarCancelationResponse response = null;
response = (AceptarRechazarCancelationResponse) app.AceptarRechazarCancelacionPFX(uuids, password_csd, rfc, b64Pfx);
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
LinkedList < CancelationData > folios = (LinkedList < CancelationData > ) response.folios;
if (folios != null) {
for (int i = 0; i < folios.size(); i++) {
CancelationData datos = folios.get(i);
System.out.println(datos.uuid);
System.out.println(datos.estatusUUID);
System.out.println(datos.respuesta);
}
}
System.out.println(response.acuse);
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

## Aceptar/Rechazar XML #
Para el consumo a través de este método necesitaremos el XML para la Aceptación/Rechazo.

```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
AceptarRechazarCancelationResponse response = null;
response = (AceptarRechazarCancelationResponse) app.AceptarRechazarCancelacionXML(xml);
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
List < CancelationData > folios = response.folios;
if (folios != null) {
for (int i = 0; i < folios.size(); i++) {
CancelationData datos = folios.get(i);
System.out.println(datos.uuid);
System.out.println(datos.estatusUUID);
System.out.println(datos.respuesta);
}
}
System.out.println(response.acuse);
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```

## Aceptar/Rechazar UUID #
Para el consumo a través de este método necesitaremos el un **String** con el UUID y la acción a realizar, así como el **RFC** emisor.

```java
SWCancelationService app = new SWCancelationService("demo", "123456789", Utils.url_pruebas);
AceptarRechazarCancelationResponse response = null;
response = (AceptarRechazarCancelationResponse) app.AceptarRechazarCancelacionUUID(uuid, rfc, "Aceptacion");//Acción → "Aceptacion" o "Rechazo"
System.out.println(response.Status);
System.out.println(response.HttpStatusCode);
LinkedList < CancelationData > folios = (LinkedList < CancelationData > ) response.folios;
if (folios != null) {
for (int i = 0; i < folios.size(); i++) {
CancelationData datos = folios.get(i);
System.out.println(datos.uuid);
System.out.println(datos.estatusUUID);
System.out.println(datos.respuesta);
}
}
System.out.println(response.acuse);
//En caso de obtener error, este puede obtenerse de los siguientes campos
System.out.println(response.message);
System.out.println(response.messageDetail);
```
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,9 @@ public SWAuthenticationService(String user, String password, String URI) {
super(user, password, URI);
}


public IResponse Token() throws GeneralException, AuthException, IOException {
AuthOptionsRequest settings = new AuthOptionsRequest(getURI(),getUser(),getPassword());


AuthRequest req = new AuthRequest();
return req.sendRequest(settings);

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,11 @@ public SWBalanceAccountService(String token, String URI) {
}

public IResponse GetBalanceAccount() throws AuthException, GeneralException, IOException {

if (getToken()==null){

generateToken();
}

//MAKE GET BALANCE ACCOUNT PROCESS, CUSTOMER ALREADY HAS TOKEN

BalanceAcctOptionsRequest settings = new BalanceAcctOptionsRequest(getToken(),getURI());

BalanceAcctRequest req = new BalanceAcctRequest();
return req.sendRequest(settings);

}
}
Loading

0 comments on commit 4f2b722

Please sign in to comment.