Discussions
problemas con sandbox a hacer una peticion a https://api-test.envia.com/ship/rate/
12 days ago by Ángel Alfonso
Estoy tratando de hacer un de hacer una cotizacion con “Get shipping rates”, estoy leyendo la documentación pero no encuentro solución al error que me sale, estoy usando esto en el body
{
"origin": {
"name": "Tres Son Uno",
"company": "Tres Son Uno",
"street": "Carrera 7",
"number": "5-58",
"district": "Centro",
"city": "76001000",
"state": "VC",
"country": "CO",
"postalCode": "760007",
"phone": "1234567893",
"email": "[[email protected]](mailto:[email protected])"
},
"destination": {
"name": "Angel Alfonso",
"company": "Cliente",
"street": "Calle 12",
"number": "1-18",
"district": "Belalcazar",
"city": "76001000",
"state": "VC",
"country": "CO",
"postalCode": "760007",
"phone": "1234567893",
"email": "[[email protected]](mailto:[email protected])"
},
"packages": [
{
"content": "biblias",
"amount": 1,
"type": "box",
"weight": 1,
"dimensions": {
"length": 24,
"width": 18,
"height": 5
}
}
],
"shipment": {
"carrier": "coordinadora ",
"type": 1
}
}
y me está respondiendo esto
{
"meta": "error",
"error": {
"code": 1300,
"description": "Invalid Option",
"message": "Error: Service Unavailable"
}
}
y si en lugar de usar coordinadora uso interRapidisimo responde con
{
"meta": "error",
"error": {
"code": 1126,
"description": "Unknown error",
"message": "Unknown error in InterRapidisimo"
}
}
pero si intento hacer la cotización de el envió con otra transportadora por ejemplo serviEntrega si me trae resultados
en mi código estoy haciendo esto
async transportadorasDisponibles(data) {
try {
const { nombre, direccion } = data;
const { barrio, celular, correo, idDepartamento, idCiudad, nomenclatura, numeroNomenclatura, numero } = direccion;
const cacheKey = `${idDepartamento}-${idCiudad}`;
let portalCode = this.getCache(cacheKey);
if (!portalCode) {
console.log("CACHE MISS");
const [ciudadesDepartamento] = await pool.query(`
SELECT nombre, ciudades2
FROM tressonuno.departamento
WHERE id = ?
`, [idDepartamento]);
const ciudadesMap = Object.fromEntries(
ciudadesDepartamento[0].ciudades2.split(',').map(item => {
const [id, nombre] = item.split(':');
return [id.trim(), nombre.trim()];
})
);
const ciudad = ciudadesMap[String(idCiudad)] || null;
portalCode = await this.getPostalCode(
ciudad,
ciudadesDepartamento[0].nombre
);
if (portalCode) {
this.setCache(cacheKey, portalCode);
}
} else {
console.log("CACHE HIT");
}
console.log('portalCode', portalCode)
const postalCode = portalCode.zip_codes[0].zip_code
const nameMunicipio = portalCode.state.code['2digit']
const idCiudadEnvia = portalCode.zip_codes[0].info.stat_8digit
console.log({
postalCode: postalCode,
nameMunicipio: nameMunicipio,
idCiudadEnvia: idCiudadEnvia
})
const body1 = {
origin: {
name: "Tres Son Uno",
company: "Tres Son Uno",
street: "Carrera 7",
number: "5-58",
district: "Centro",
city: "76001000",
state: "VC",
country: "CO",
postalCode: "760501",
phone: "1234567893",
email: "[email protected]"
},
destination: {
name: nombre,
company: "Cliente",
street: `${nomenclatura} ${numeroNomenclatura}`,
number: numero,
district: barrio,
city: idCiudadEnvia,
state: nameMunicipio,
country: "CO",
postalCode: postalCode,
phone: celular,
email: correo
},
packages: [
{
content: "biblias",
amount: 1,
type: "box",
weight: 1,
declaredValue: 109900,
weightUnit: "KG",
lengthUnit: "CM",
dimensions: {
length: 24,
width: 18,
height: 5
}
}
],
shipment: {
carrier: "coordinadora",
"type": 1
}
};
const body2 = {
origin: {
name: "Tres Son Uno",
company: "Tres Son Uno",
street: "Carrera 7",
number: "5-58",
district: "Centro",
city: "76001000",
state: "VC",
country: "CO",
postalCode: "760501",
phone: "1234567893",
email: "[email protected]"
},
destination: {
name: nombre,
company: "Cliente",
street: `${nomenclatura} ${numeroNomenclatura}`,
number: numero,
district: barrio,
city: idCiudadEnvia,
state: nameMunicipio,
country: "CO",
postalCode: postalCode,
phone: celular,
email: correo
},
packages: [
{
content: "biblias",
amount: 1,
type: "box",
weight: 1,
declaredValue: 109900,
weightUnit: "KG",
lengthUnit: "CM",
dimensions: {
length: 24,
width: 18,
height: 5
}
}
],
shipment: {
carrier: "interRapidisimo",
"type": 1
}
};
const response1 = await axios.post(
`${process.env.ENPOINT_API_ENVIAME}/ship/rate/`,
body1,
{
headers: {
"accept": "application/json",
"content-type": "application/json",
"authorization": `Bearer ${process.env.KEY_ENVIAME_API}`
}
}
);
const response2 = await axios.post(
`${process.env.ENPOINT_API_ENVIAME}/ship/rate/`,
body2,
{
headers: {
"accept": "application/json",
"content-type": "application/json",
"authorization": `Bearer ${process.env.KEY_ENVIAME_API}`
}
}
);
return {
response1: response1.data,
response2: response2.data
};
} catch (error) {
logger.error("Error en transportadorasDisponibles", {
error: error.message,
parametros: data
});
console.log(error)
throw error;
}
}
