Closed abelnexus closed 6 years ago
quiero consumir la libreria algo asi pero no se como hacerlo con mi propio form
lo que es obligatorio es esto (web de consulta para los usuarios), enviar mail es opcional. Sufel es un API REST, el ui lo hice con angular. Tu puedes hacer tu propia interfaz y consumir el servicio, los endpoint estan definidos aqui
Es multiempresa, los pasos que tendrias que hacer son:
/company/create
Crear la empresa /company/add-document
Agregar un documento (xml + pdf )Para consultar un comprobante los pasos serian:
/client/auth
Consulta segun los datos del comprobante (serie, fecha, total, etc)/client/document/xml
Descarge el xml con el token devuelto por /client/auth
/client/document/pdf
Descarge el pdf con el token devuelto por /client/auth
se necesita todos esos datos ? o solo la carpeta vendor
estoy perdido verdad ? :')
si, sufel no es una libreria, es una aplicación API REST lista para ser desplagada a algun hosting, en tu caso es el cliente el que tienes que crear , puedes hacerlo usando jquery + ajax
podrias darme un ejemplo por favor ? nunca use una api rest
por ejemplo con ajax jquery , para verificar que se encuentra el comprobante:
var data = {
emisor: "2000000001",
tipo: "01",
documento: "F001-1",
fecha: "2018-03-12T00:00:00",
total: 213.23
};
$.ajax({
url: 'http://domain.com/api/client/auth',
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(data),
success: function (r) {
console.log(r.token);
}
});
entonces solo subo la carpeta sufel-master a un hosting y envio los datos directamente con este codigo?
si, o también puedes subir el archivo sufel.phar.zip que ya incluye las dependencias instaladas con composer, solo tienes que cambiar la configuracion de base de datos en el index.php
dentro del zip,
Las extensiones de php habilitadas son:
ya subi sufel.phar.zip al hosting y cree la bd ahora en que directorio subo el xml y el pdf
despues de crear la base de datos, necesitas crear las tablas, aqui estan los querys, los archivos se suben por el API, para que los registre en la base de datos y posteriormente se pueda consultar.
veo que hace falta un manual.
la bd con las tablas y la conexion tambien ya esta, pero codigo para subir los archivos ? o como se hace
ahora desde mi local host estoy usando esto al hacer click espero "algo"
:'(
tienes que subir los archivos para poder consultar, aqui esta la documentacion del API , los archivos se envian codificado en base64
{
xml: "--content-base64-xml--",
pdf: "--content-base64-pdf--"
}
dame un ejemplo amigo por favor como subir un archivo desde localhost a mi hosting http://rodolfomv.com/
y el jquery?
no es esa foto que subi el jquery ? :(
en que lado colocaste el jquery. ejm:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
ahh que imbecil soy!!!
creo que la direccion esta mal ? o que puede ser ese error
segun la documentacion los aprametros son incorrectos, pero no veo el error en el codigo
ayudame amigo en que estoy fallando
requiere autenticacion, el valor que pusiste en SUFEL_ADMIN=xxxxx , tienes que enviarlo en la url.
/api/company/create?token=xxxxx
hola amigo con el token ya me registra la compañia, mi duda sigue siendo al subir el archivo tiene que ser con un imput (type file) ?
en la documentación dice "string" o solamente es el nombre lo que se sube ? entonces como harian para descargar el pdf o el xml
sale error 401 Unauthorized
ni asi :(
Para subir el archivo tendrías que hacerlo usando PHP, el token de administrador es solo para crear las empresas, como es multiempresa cada una tiene que autenticarse aqui : /company/auth
se tiene que enviar esto:
{
"ruc": "20000000001",
"password": "xxxxxx"
}
esto devolvera un token :
{
"token": "tyyuuidgguiiixdhhh",
"expire": 222
}
Después de tener el token podras enviar el archivo:
$xml = base64_encode(file_get_contents("2222.xml"));
$pdf= base64_encode(file_get_contents("2222.pdf"));
$content = ['xml' => $xml, 'pdf' => $pdf];
$headers = ['Authorization' => 'Bearer YOUR-TOKEN-HERE'];
en php que libreria usas para realizar peticiones HTTP? ejm: curl
no se me ocurre como enviar esos datos amigo
si pudieras copiar es codigo aqui como texto y no imagen podria ayudarte
disculpa no se como se ordena D:
$xml = base64_encode(file_get_contents("10486113532-01-F001-000100.xml")); $pdf= base64_encode(file_get_contents("10486113532-01-F001-000100.pdf"));
$content = ['xml' => $xml, 'pdf' => $pdf]; $headers = ['Authorization' => 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6WyJjb21wYW55Il0sInJ1YyI6IjEwNDg2MTEzNTMyIiwiZXhwIjoxNTIxNjYzMjg3fQ.urQL9i1r9ku2p3uin0E16NUBbYlk1nWIVBUXq6nWdPw']; function myFunction() { var data = { xml: "$xml", pdf: "$pdf" } $.ajax({ url: 'http://localhost:82/sufel/api/company/add-document?Authorization=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6WyJjb21wYW55Il0sInJ1YyI6IjEwNDg2MTEzNTMyIiwiZXhwIjoxNTIxNjYzMjg3fQ.urQL9i1r9ku2p3uin0E16NUBbYlk1nWIVBUXq6nWdPw', type: 'POST', dataType: 'json', contentType: "application/json; charset=utf-8", data: JSON.stringify(data), success: function (r) { console.log(r.token);
} }); }
$xml = base64_encode(file_get_contents("10486113532-01-F001-000100.xml"));
$pdf= base64_encode(file_get_contents("10486113532-01-F001-000100.pdf"));
$content = ['xml' => $xml, 'pdf' => $pdf];
?>
function myFunction() {
var data = {
xml: "<?php echo $xml?>",
pdf: "<?php echo $pdf?>"
}
$.ajax({
url: 'http://localhost:82/sufel/api/company/add-document',
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(data),
headers: {
Authorization: "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6WyJjb21wYW55Il0sInJ1YyI6IjEwNDg2MTEzNTMyIiwiZXhwIjoxNTIxNjYzMjg3fQ.urQL9i1r9ku2p3uin0E16NUBbYlk1nWIVBUXq6nWdPw"
}
success: function (r) {
console.log(r);
}
});
}
perfecto amigo ya me guarda el archivo probe hacer la consulta y es correcto, ahora no se como capturo la respuesta y lo muestro(solo aparece en consola) o como puede descargar o ver el pdf
function myFunction() { var data = { emisor: "10486113532", tipo: "01", documento: "F001-000100", fecha: "2018-03-15", total: 120.00 }; $.ajax({ url: 'http://localhost:82/sufel/api/client/auth', type: 'POST', dataType: 'json', contentType: "application/json; charset=utf-8", data: JSON.stringify(data), success: function (r) { console.log(r.token); } }); }
estas son las url para consultar:
/client/document/info
/client/document/xml
/client/document/pdf
se tiene que enviar el token que te devolvio arriba en los headers del ajaxtodo sale asi, pero los consultantes no podran usar asi :'v
es formato raw del PDF, hay unas librerias para guardar ese pdf como el que se usa en sufel-angular,
alguna forma de abrir o mostrar el info o pdf que no sea en la consola ?
si puedes guiarte del ejemplo sufel-angular, alli hace todos los pasos que has hecho
amigo, esto tambien es aceptado en vez de enviar email no ? o son diferentes consulta y envio de representacion impresa