Skip to content

Commit b680f56

Browse files
authored
Merge pull request #49 from lunasoft/feature/SS-445
feature/SS-445
2 parents 0ec5b16 + 756ba6f commit b680f56

File tree

5 files changed

+198
-19
lines changed

5 files changed

+198
-19
lines changed

README.md

Lines changed: 81 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public class App {
123123
//Creamos una instancia de tipo Stamp
124124
//A esta le pasamos la Url y su Token infinito
125125
//Este lo puede obtener ingresando al administrador de timbres con su usuario y contraseña
126-
Stamp stamp = new Stamp("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
126+
Stamp stamp = new Stamp("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
127127
String xml = new String(Files.readAllBytes(Paths.get("file.xml")), "UTF-8");
128128
StampResponseV1 response = stamp.timbrarV1(xml, false);
129129
}
@@ -152,7 +152,7 @@ public class App {
152152
//Creamos una instancia de tipo Stamp
153153
//A esta le pasamos la Url y su Token infinito
154154
//Este lo puede obtener ingresando al administrador de timbres con su usuario y contraseña
155-
Stamp stamp = new Stamp("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
155+
Stamp stamp = new Stamp("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
156156
byte[] xml = Files.readAllBytes(Paths.get("file.xml"));
157157
String xml64 = Base64.getEncoder().encodeToString(xml);
158158
StampResponseV1 response = stamp.timbrarV1(xml64, true);
@@ -294,7 +294,7 @@ public class App {
294294
//Creamos una instancia de tipo Cancelation
295295
//A esta le pasamos la Url, Usuario y Contraseña para obtener el token
296296
//Automaticamente despues de obtenerlo se procedera a Cancelar el xml o cfdi
297-
Cancelation cancelation = new Cancelation("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
297+
Cancelation cancelation = new Cancelation("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
298298

299299
//Obtenemos Certificado y lo convertimos a Base 64
300300
String cer = Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get("CSD_Prueba_CFDI_EKU9003173C9.cer")));
@@ -344,7 +344,7 @@ public class App {
344344
//Creamos una instancia de tipo Cancelation
345345
//A esta le pasamos la Url, Usuario y Contraseña para obtener el token
346346
//Automaticamente despues de obtenerlo se procedera a Cancelar el xml o cfdi
347-
Cancelation cancelation = new Cancelation("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
347+
Cancelation cancelation = new Cancelation("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
348348

349349
//Obtenemos Certificado y lo convertimos a Base 64
350350
String cer = Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get("CSD_Prueba_CFDI_EKU9003173C9.cer")));
@@ -1221,7 +1221,7 @@ public class App {
12211221
{
12221222
//Creamos una instancia de tipo PDF
12231223
//A esta le pasamos la Url y el token
1224-
Pdf pdf = new Pdf("https://api.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
1224+
Pdf pdf = new Pdf("https://api.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
12251225

12261226
//Obtenemos el xml
12271227
String xmlcontent = new String(Files.readAllBytes(Paths.get("cfdi_pdf.xml")), "UTF-8");
@@ -1272,7 +1272,7 @@ public class App {
12721272
{
12731273
//Creamos una instancia de tipo PDF
12741274
//A esta le pasamos la Url y el token
1275-
Pdf pdf = new Pdf("https://api.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
1275+
Pdf pdf = new Pdf("https://api.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
12761276

12771277
//Realizamos la petición de regenerar el pdf pasando el UUID del CFDI que queremos regenerar.
12781278
PdfResponse response = pdf.regeneratePdf(UUID.fromString("21348cb0-a94a-466c-a8e0-abef7f35a71b"));
@@ -1319,7 +1319,7 @@ public class App {
13191319
{
13201320
//Creamos una instancia de tipo Resend
13211321
//A esta le pasamos el UrlAPi, asi como nuestro token
1322-
Resend resend = new Resend("https://api.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
1322+
Resend resend = new Resend("https://api.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
13231323
//Creamos una array con los correos (Max. 5 correos, separados por ",")
13241324
List<String> correo = Arrays.asList("correo@test.com.mx");
13251325
////Automaticamente recibiremos a nuestro correo el XML y/o PDF existente
@@ -1350,7 +1350,7 @@ Método para consultar todos los certificados cargados en la cuenta.
13501350

13511351
Este metodo recibe los siguientes parametros:
13521352
* Url Servicios SW(cuando se añaden usuario y contraseña)
1353-
* Token
1353+
* Usuario y contraseña ó Token
13541354

13551355
**Ejemplo de consumo de la libreria para la consulta de certificados mediante token**
13561356
```java
@@ -1370,7 +1370,7 @@ public class App {
13701370
//Creamos una instancia de tipo CsdUtils
13711371
//A esta le pasamos la Url y token
13721372
//Automaticamente se procedera a la consulta
1373-
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
1373+
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
13741374
CsdListDataResponse response = csd.GetAllCsd();
13751375
//En caso exitoso se podran obtener los siguientes datos
13761376
List<CsdData> lista = response.getData();
@@ -1401,6 +1401,70 @@ public class App {
14011401
```
14021402
</details>
14031403

1404+
<details>
1405+
<summary>
1406+
Consultar Certificado Por RFC
1407+
</summary>
1408+
1409+
## Consultar Certificado Por RFC ##
1410+
Método para obtener un certificado cargado enviando como parámetro el RFC del contribuyente.
1411+
1412+
Este metodo recibe los siguientes parametros:
1413+
* Url Servicios SW
1414+
* Usuario y contraseña ó Token
1415+
* RFC del contribuyente
1416+
1417+
**Ejemplo de consumo de la librería para la consulta de certificados por RFC mediante token**
1418+
```java
1419+
import java.util.List;
1420+
import mx.com.sw.services.csd.responses.CsdDataResponse;
1421+
import mx.com.sw.services.csd.responses.CsdListDataResponse;
1422+
import mx.com.sw.services.csd.responses.CsdResponse;
1423+
import mx.com.sw.services.csd.responses.CsdData;
1424+
import mx.com.sw.services.csd.CsdUtils;
1425+
1426+
public class App {
1427+
1428+
public static void main(String[] args)
1429+
{
1430+
try
1431+
{
1432+
//RFC del certificado
1433+
String Rfc = "EKU9003173C9";
1434+
//Creamos una instancia de tipo CsdUtils
1435+
//A esta le pasamos la Url y token
1436+
//Automaticamente se procedera a la consulta
1437+
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
1438+
CsdListDataResponse response = csd.GetCsdByRfc(Rfc);
1439+
//En caso exitoso se podran obtener los siguientes datos
1440+
List<CsdData> lista = response.getData();
1441+
if(lista != null) {
1442+
for(int i=0; i<lista.size(); i++) {
1443+
CsdData dato = lista.get(i);
1444+
System.out.println(dato.getIssuerRfc());
1445+
System.out.println(dato.getIssuerBusinessName());
1446+
System.out.println(dato.getCertificateNumber());
1447+
System.out.println(dato.getCertificateType());
1448+
System.out.println(dato.getIsActive());
1449+
System.out.println(dato.getValidFrom());
1450+
System.out.println(dato.getValidTo());
1451+
}
1452+
}
1453+
1454+
//En caso de error, se pueden visualizar los campos message y/o messageDetail
1455+
System.out.println("Error");
1456+
System.out.println(response.getMessage());
1457+
System.out.println(response.getMessageDetail());
1458+
}
1459+
catch (Exception e)
1460+
{
1461+
System.out.println(e);
1462+
}
1463+
}
1464+
}
1465+
```
1466+
</details>
1467+
14041468
<details>
14051469
<summary>
14061470
Consultar Certificado Por NoCertificado
@@ -1411,7 +1475,7 @@ Método para obtener un certificado cargado enviando como parámetro el número
14111475

14121476
Este metodo recibe los siguientes parametros:
14131477
* Url Servicios SW
1414-
* Token
1478+
* Usuario y contraseña ó Token
14151479
* Número de certificado a obtener
14161480

14171481
**Ejemplo de consumo de la libreria para la consulta de certificados por Número de Certificado mediante token**
@@ -1434,7 +1498,7 @@ public class App {
14341498
//Creamos una instancia de tipo CsdUtils
14351499
//A esta le pasamos la Url y token
14361500
//Automaticamente se procedera a la consulta
1437-
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
1501+
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
14381502
CsdDataResponse response = csd.GetCsd(NoCertificado);
14391503
//En caso exitoso se podran obtener los siguientes datos
14401504
System.out.println(response.getData().getIssuerRfc());
@@ -1502,7 +1566,7 @@ public class App {
15021566
//Creamos una instancia de tipo CsdUtils
15031567
//A esta le pasamos la Url y token
15041568
//Automaticamente se procedera a la carga de los certificados
1505-
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
1569+
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
15061570
CsdResponse response = csd.UploadCsd(cer, key, passwordCer);
15071571
//En caso exitoso se podran obtener el mensaje de exito
15081572
System.out.println(response.data);
@@ -1554,7 +1618,7 @@ public class App {
15541618
//Creamos una instancia de tipo CsdUtils
15551619
//A esta le pasamos la Url y token
15561620
//Automaticamente se procedera a la eliminacion
1557-
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
1621+
CsdUtils csd = new CsdUtils("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
15581622
CsdResponse response = csd.DeleteCsd(NoCertificado);
15591623
//En caso exitoso se podran obtener el mensaje de exito.
15601624
System.out.println(response.data);
@@ -1848,7 +1912,7 @@ public class App {
18481912
//Creamos una instancia de tipo Pending
18491913
//A esta le pasamos la Url, usuario y password o token de authentication
18501914
//Automaticamente despues de obtenerlo se procedera a consultar las facturas relacionadas
1851-
Pendings pendings = new Pendings("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
1915+
Pendings pendings = new Pendings("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
18521916
PendingsResponse response = pendings.getPendings("EKU9003173C9");
18531917
//Para obtener el status de la consulta
18541918
System.out.println(response.getStatus());
@@ -1956,7 +2020,7 @@ public class App {
19562020
//Creamos una instancia de tipo AcceptReject
19572021
//A esta le pasamos la Url, usuario y password o token de authentication
19582022
//Automaticamente despues de obtenerlo se procedera a procesar las facturas con su acción
1959-
AcceptReject acceptReject = new AcceptReject("http://services.test.sw.com.mx","T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
2023+
AcceptReject acceptReject = new AcceptReject("http://services.test.sw.com.mx","T2lYQ0t4L0R...", null, 0);
19602024
//Datos
19612025
List<AcceptRejectItem> list = new ArrayList<AcceptRejectItem>() {{
19622026
add(new AcceptRejectItem("7FA1C269-25AA-4898-BA2C-7CBCF6DB694B", EnumAcceptReject.Aceptacion));
@@ -2018,7 +2082,7 @@ public class App {
20182082
//Creamos una instancia de tipo AcceptReject
20192083
//A esta le pasamos la Url, usuario y password o token de authentication
20202084
//Automaticamente despues de obtenerlo se procedera a procesar las facturas con su acción
2021-
AcceptReject acceptReject = new AcceptReject("http://services.test.sw.com.mx","T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
2085+
AcceptReject acceptReject = new AcceptReject("http://services.test.sw.com.mx","T2lYQ0t4L0R...", null, 0);
20222086
//Datos
20232087
List<AcceptRejectItem> list = new ArrayList<AcceptRejectItem>() {{
20242088
add(new AcceptRejectItem("7FA1C269-25AA-4898-BA2C-7CBCF6DB694B", EnumAcceptReject.Aceptacion));
@@ -2109,7 +2173,7 @@ public class App {
21092173
//Creamos una instancia de tipo AcceptReject
21102174
//A esta le pasamos la Url, usuario y password o token de authentication
21112175
//Automaticamente despues de obtenerlo se procedera a procesar las facturas con su acción
2112-
AcceptReject acceptReject = new AcceptReject("http://services.test.sw.com.mx", "T2lYQ0t4L0R....ReplaceForRealToken", null, 0);
2176+
AcceptReject acceptReject = new AcceptReject("http://services.test.sw.com.mx", "T2lYQ0t4L0R...", null, 0);
21132177
String xml = new String(Files.readAllBytes(Paths.get("acceptReject.xml")), "UTF-8");
21142178
AcceptRejectResponse response = acceptReject.setAction(xml);
21152179
//Para obtener el status de la consulta

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>mx.com.sw</groupId>
55
<artifactId>sdk-java18</artifactId>
6-
<version>0.0.11.1</version>
6+
<version>0.0.12.1</version>
77
<packaging>jar</packaging>
88
<properties>
99
<maven.compiler.source>1.8</maven.compiler.source>

src/main/java/mx/com/sw/services/csd/CsdUtils.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ public CsdListDataResponse GetAllCsd()throws ServicesException {
117117
public CsdDataResponse GetCsd(String noCertificado)throws ServicesException {
118118
CsdDataResponseHandler handler = new CsdDataResponseHandler();
119119
try {
120-
121120
String path = String.format("certificates/%s", noCertificado);
122121
Map<String, String> headers = getHeaders();
123122
headers.put("Content-Type", "application/json");
@@ -129,4 +128,24 @@ public CsdDataResponse GetCsd(String noCertificado)throws ServicesException {
129128
return handler.handleException(e);
130129
}
131130
}
131+
/**
132+
* Servicio que realiza la obtención de un certificado por RFC
133+
*
134+
* @param rfc RFC del certificado.
135+
* @return CsdResponse.
136+
* @throws ServicesException
137+
*/
138+
public CsdListDataResponse GetCsdByRfc(String rfc)throws ServicesException {
139+
CsdListDataResponseHandler handler = new CsdListDataResponseHandler();
140+
try {
141+
Map<String, String> headers = getHeaders();
142+
headers.put("Content-Type", "application/json");
143+
RequestConfig config = GeneralHelpers.setProxyAndTimeOut(getProxy(), getProxyPort());
144+
return handler.getHTTP(getUrl(), String.format("certificates/rfc/%s", rfc),
145+
headers,
146+
config, CsdListDataResponse.class);
147+
} catch (ServicesException e) {
148+
return handler.handleException(e);
149+
}
150+
}
132151
}

src/test/java/mx/com/sw/services/account/balance/AccountBalanceTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.UUID;
99

1010
import org.junit.jupiter.api.Assertions;
11+
import org.junit.jupiter.api.Disabled;
1112
import org.junit.jupiter.api.Test;
1213

1314
/**
@@ -152,6 +153,7 @@ public void testAddStampsBadToken() {
152153
/**
153154
* Método de UT AgregarTimbres con token correcto.
154155
*/
156+
@Disabled("No quitar/agregar timbres de la cuenta de pruebas")
155157
@Test
156158
public void testAddStampsByToken() {
157159
try {
@@ -168,6 +170,7 @@ public void testAddStampsByToken() {
168170
/**
169171
* Método de UT AgregarTimbres con Autenticacion.
170172
*/
173+
@Disabled("No quitar/agregar timbres de la cuenta de pruebas")
171174
@Test
172175
public void testAddStampsByAuth() {
173176
try {
@@ -219,6 +222,7 @@ public void testRemoveStampsBadToken() {
219222
/**
220223
* Método de UT EliminarTimbres con token correcto.
221224
*/
225+
@Disabled("No quitar/agregar timbres de la cuenta de pruebas")
222226
@Test
223227
public void testRemoveStampsByToken() {
224228
try {
@@ -234,6 +238,7 @@ public void testRemoveStampsByToken() {
234238
/**
235239
* Método de UT EliminarTimbres con token correcto.
236240
*/
241+
@Disabled("No quitar/agregar timbres de la cuenta de pruebas")
237242
@Test
238243
public void testRemoveStampsSaldoInsuficiente() {
239244
try {
@@ -252,6 +257,7 @@ public void testRemoveStampsSaldoInsuficiente() {
252257
/**
253258
* Método de UT EliminarTimbres con Autenticacion.
254259
*/
260+
@Disabled("No quitar/agregar timbres de la cuenta de pruebas")
255261
@Test
256262
public void testRemoveStampsByAuth() {
257263
try {

0 commit comments

Comments
 (0)