Error 99999 con Mondial Relay
Bruno83200_6929 Mensajes publicados 725 Fecha de registro Estado Miembro Última intervención -
Hola,
después de crear mi cuenta de Mondial Relay, recibí los identificadores de las API versión 1 y versión 2. Para cada cuenta, tengo parámetros de producción y parámetros de prueba. Por ahora, me estoy enfocando en la versión 2.
Puedo crear etiquetas con la versión 2, pero solo con los parámetros de prueba. ¡Es increíble, funciona! He creado una etiqueta de envío.
Sin embargo, he intentado durante días y días crear una etiqueta con Mondial Relay utilizando mis parámetros de producción. Por supuesto, no modifico nada en los campos debajo de los identificadores, solo modifico mis identificadores. He intentado todas las soluciones posibles e imaginables. He buscado minuciosamente en la web y, lamentablemente, no encuentro nada, absolutamente nada, que pueda generar mis etiquetas con mis parámetros de producción.
Por supuesto, he intentado contactar a Mondial Relay a través de Facebook, por teléfono y por correo electrónico, pero no responden. Entonces, si alguien generoso pudiera ayudarme…
Aquí está el mensaje que recibo en cada uno de mis intentos. Te doy mi código con una sección comentada: mi cuenta de prueba que genera las etiquetas de demostración, y los parámetros de mi cuenta de producción. Por supuesto, por razones de privacidad, he modificado ligeramente mis identificadores. Gracias de antemano por tu ayuda.
Aquí está el mensaje de error con las credenciales de producción.
RegisteredShipmentData Object ( [BrandCode] => [Success] => [Messages] => Array ( [0] => RegisteredParcelStatusData Object ( [Message] => Se ha producido un error de validación.
este código se proporciona con la caja de herramientas de mondial relay
<?php require_once('includes/MondialRelay.API.Class.php'); //Declaramos el cliente $MRService = new MondialRelayWebAPI(); /* //prueba $MRService->_Api_CustomerCode = "BDTEST"; //$MRService->_Api_BrandId = "11"; //$MRService->_Api_SecretKey = ""; $MRService->_Api_User = "BDTEST@business-api.mondialrelay.com"; $MRService->_Api_Password = "'2crtPDo0ZL7Q"; $MRService->_Api_Version = "2.0"; */ //producción $MRService->_Api_CustomerCode = "CC23FV88"; //$MRService->_Api_BrandId = "CC23FV88"; //$MRService->_Api_SecretKey = ""; $MRService->_Api_User = "CC23FV88@business-api.mondialrelay.com"; $MRService->_Api_Password = ":vpCH'WGi7H"; $MRService->_Api_Version = "2.0"; $MRService->_Debug = false; //establecer la dirección del comerciante //dirección del remitente $merchantAdress = new Adress(); $merchantAdress->Adress1 = "Mi librería"; //$merchantAdress->Adress2 = ""; $merchantAdress->Adress3 = "10 rue des écoles"; //$merchantAdress->Adress4 = ""; $merchantAdress->PostCode = "6000"; $merchantAdress->City = "charleroi"; $merchantAdress->CountryCode = "BE"; $merchantAdress->PhoneNumber = "+32300000000" ; //$merchantAdress->PhoneNumber2 =""; $merchantAdress->Email = "hello@mybookshop.com"; $merchantAdress->Language = "BE"; //------------------------------------------------- //Ejemplo de creación de envío //------------------------------------------------- //Crear un nuevo objeto de envío $myShipment = new ShipmentData(); //establecer las opciones de entrega $myShipment->DeliveryMode = new ShipmentInfo() ; $myShipment->DeliveryMode->Mode = "HOM"; //ID de la tienda de paquetes cuando sea necesario //$myShipment->DeliveryMode->ParcelShopId = "41068"; //$myShipment->DeliveryMode->ParcelShopContryCode = "BE"; //$myShipment->DeliveryMode->ParcelShopCountryCode = "BE"; //establecer las opciones de recogida $myShipment->CollectMode = new ShipmentInfo() ; $myShipment->CollectMode->Mode = "CCC"; //ID de la tienda de paquetes cuando sea necesario //$myShipment->CollectMode->ParcelShopId = "066974"; //$myShipment->CollectMode->ParcelShopContryCode = "FR"; $myShipment->InternalOrderReference = "592268872383"; $myShipment->InternalCustomerReference ="LBG"; //dirección del remitente con la dirección previamente declarada $myShipment->Sender = $merchantAdress; //dirección del destinatario $myShipment->Recipient = new Adress() ; $myShipment->Recipient->Adress1 = "Robin Mince"; //$myShipment->Recipient->Adress2 = "Résidence des champs"; $myShipment->Recipient->Adress3 = "18 rue basse"; //$myShipment->Recipient->Adress4 = ""; $myShipment->Recipient->PostCode = "6000"; $myShipment->Recipient->City = "Charleroi"; $myShipment->Recipient->CountryCode = "BE"; $myShipment->Recipient->PhoneNumber = "+32300000000" ; $myShipment->Recipient->PhoneNumber2 = "+32600000000"; $myShipment->Recipient->Email = "client@yopmail.com"; $myShipment->Recipient->Language = "FR"; //datos de envío $myShipment->DeliveryInstruction= "" ; $myShipment->CommentOnLabel= "" ; //declaración de paquete (un artículo por paquete) $myShipment->Parcels[0] = new Parcel(); $myShipment->Parcels[0]->WeightInGr = 1000; $myShipment->Parcels[0]->Content = "libros "; // $myShipment->Parcels[1] = new Parcel(); // $myShipment->Parcels[1]->WeightInGr = 2000; // $myShipment->Parcels[1]->Content = "lápices y pinturas "; $myShipment->InsuranceLevel=""; $myShipment->CostOnDelivery= 0 ; $myShipment->CostOnDeliveryCurrency= "EUR" ; $myShipment->Value= 0 ; $myShipment->ValueCurrency= "EUR"; //Crear el envío //esto retornará la URL de las etiquetas y el número de envío para seguir el paquete //creación con API Internacional $ShipmentDatas = $MRService->CreateShipment($myShipment); print_r($ShipmentDatas); echo '<a href="'.$ShipmentDatas->LabelLink.'" >Descargar Etiquetas</a>'; ?>
2 respuestas
-
Hola,
El problema proviene muy probablemente de uno o varios parámetros obligatorios en producción, en particular BrandCode / BrandId y los campos obligatorios de dirección / idioma / teléfono.
Agrega un BrandCode (a menudo obligatorio en producción):
$MRService->_Api_BrandId = "XX"; // Reemplaza XX por tu valor exacto proporcionado por MR en producción
Reemplaza "BE" por "FR" en el campo Language del remitente y del destinatario, a menudo Mondial Relay espera un código de idioma ISO 639-1:
$merchantAdress->Language = "FR"; $myShipment->Recipient->Language = "FR";
Verifica el formato de las direcciones, por ejemplo, no pongas Adress3 si no es necesario, pero prioriza Adress1 y Adress2:
$merchantAdress->Adress1 = "10 rue des écoles"; $merchantAdress->Adress2 = "My book shop"; // en lugar de en Adress3
Envía un teléfono sin espacios y bien formateado:
$merchantAdress->PhoneNumber = "+32300000000";
Asegúrate de no utilizar Adress4 ni otros campos vacíos, a veces eso causa problemas.
Depuración más profunda
Pon $MRService->_Debug = true; para recuperar registros más detallados.Intenta capturar y mostrar todos los errores devueltos en el arreglo $ShipmentDatas->Messages y no solo el primer mensaje:
if (isset($ShipmentDatas->Messages)) { foreach ($ShipmentDatas->Messages as $msg) { echo $msg->Message . "<br>"; } }Sé que ya has intentado, pero en general la mejor manera de contactar su soporte técnico API es a través de su portal dedicado o tu interlocutor comercial. A veces responden mejor a través de un ticket oficial.
-
Hola
Gracias por la ayuda y la respuesta, pero también por la solución.
Sin embargo, en todos los casos siempre es el mismo código de error.
Ni Claude ni Chat GPT encuentran una solución tampoco.
Para contactar a Mondial Relay, dicen que responden, pero nunca hay respuesta.-
Buenas noches,
Según las investigaciones que he podido hacer, el error 99999 puede estar relacionado con un problema temporal del servidor de Mondial Relay, como una indisponibilidad o una sobrecarga del servicio.
Si está utilizando un punto de recogida o un modo de entrega (como un Locker) no autorizado en su contrato con Mondial Relay, esto puede desencadenar un error de validación como el 99999.
Algunos usuarios han informado que el error 99999 aparece únicamente con ciertos puntos de recogida, mientras que otros funcionan correctamente. Esto puede estar relacionado con datos específicos del punto de recogida (código postal, dirección, etc.) o con restricciones en la base de datos de Mondial Relay.
Bruno
-