Pregunta básica soy nuevo

Nick
Nick

Hola! Soy nuevo en esta librería, quería saber si funcionaría en una aplicación desarrollada en typescript, deployada en un serverless (Vercel). Gracias.

Chiqui1234ok
Chiqui1234ok

Hola! Estoy usando el paquete "afip.ts" para typescript. Va bien

Nick
Nick

Lo probé pero no logré hacerlo funcionar aún, te envié solicitud para MD.

Chiqui1234ok
Chiqui1234ok

Hablemos por acá, así queda documentado tu problema 😄 Que error te tira?

Nick
Nick

Por empezar, no estoy pudiendo leer de ninguna forma el archivo wsfe-production.wsdl, ¿como hiciste eso, es decir donde lo colocas?

Chiqui1234ok
Chiqui1234ok

te referís al certificado que te genera ARCA para empezar a consultarle datos a la API? No fui a producción, asumo que como tu pregunta inicial es tan básica todavía no pudiste probar bien esta biblioteca. Yo lo que hice primero fue leer como dar de alta las credenciales para desarrollo, así que te puedo guiar con eso (aparte, así probás todo sin facturar ni romper nada).

Las credenciales para desarrollo me las guardé en .arca/credentials (priv.key y pub.crt).

Y las leo con este código. Básicamente me hice una clase para simplificar más la biblioteca. Cuándo instancio mi clase, cargo los archivos para loguearme:

import * as fs from 'fs';
import { Afip } from 'afip.ts';

export class Arca {
    private afip: Afip;

    constructor() {
        const key = fs.readFileSync(`${__dirname}/../../.arca/credentials/priv.key`, 'utf8');
        const cert = fs.readFileSync(`${__dirname}/../../.arca/credentials/pub.crt`, 'utf8');
        const cuit = parseInt(process.env.MS_ACCESS_WEBAPP_ARCA_CUIT || '');

        if(!key) throw new Error('Clave privada no definida.');
        if(!cert) throw new Error('Certificado público no definido.');
        if (!cuit) throw new Error('CUIT no definido.');

        this.afip = new Afip({
            key,
            cert,
            cuit,
            production: process.env.MS_ACCESS_WEBAPP_NODE_ENV === 'prod'
        });

        this.setCredentials();
    }
[...]

Te diría primero que crees las credenciales de desarrollo. Yo también soy nuevo pero los PDF que están en la web de ARCA me ayudaron 😄

Después de eso podemos seguir hablando... te recomiendo no desesperar y arrancar por ahí. Ojo que no sólo tenés que crear las claves, sino también habilitar el servicio wsfe (creo que se llama así)

Nick
Nick

Hola! En local todo eso que mencionás me anduvo, el problema es cuando me tengo que pasar a producción en Vercel. Por lo que veo, se puede usar el método API que es más sencillo para serverless (ej.Vercel), mañana lo voy a probar.

Chiqui1234ok
Chiqui1234ok

Justo en otra pregunta me di cuenta que el archivo wsfe-production.wsdl es de la API vieja de ARCA. Disculpame pero no tengo experiencia con eso, por eso te había respondido con que tengo la priv.key y pub.crt 😛 (así parece ser que se implementa la API nueva)

Tirá si lo hiciste funcionar! Abrazo grande

Igualmente si querés usar la biblioteca Afip.ts, te la recomiendo. Medio que en un día me armé como lo quería. Simplifica mucho

Nick
Nick

Yo renegué mucho con la biblioteca Afip.ts , por eso ahora estoy probando esta. ¿Vos pudiste usar Afip.ts en producción? ¿Con que tipo de server y por qué te pasaste a esta biblioteca si te andaba la otra? Con respecto a esta, vengo bien con las pruebas .... pegándole directamente a la API para no renegar.

Chiqui1234ok
Chiqui1234ok

Es el primer desarrollo que hago con integración con ARCA. Estoy con afip.ts por los tipos nomás. Los servidores que utilizo son VPS / dedicados 🙂