SOAP API
Resumen
En SOAP se encuentra el lenguaje de definición de servicios web (WSDL) de Modica, más información: https://api.modicagroup.com/ModicaSoap.wsdl
Para enviar un SMS a través de SOAP, use la operación sendMessage.
Debe acceder al servicio web a través de https; los intentos de usar http se redirigirán a su URL de http equivalente.
Parámetros
El método SOAP que se utiliza para entregar un SMS a un teléfono móvil se denomina ‘sendMessage’ en WSDL. Los parámetros de este método son:
Parámetro | Descripción |
---|---|
application* | El nombre de su aplicación, proporcionada por Modica. |
password* | Su contraseña para la aplicación es proporcionada por Modica. |
destination* | El número de teléfono móvil al que se enviará el mensaje. Esta variable string debe ser un número de teléfono móvil válido en formato internacional. Esto generalmente significa eliminar el cero inicial y reemplazarlo con el código del país precedido por un signo más Por ejemplo: Para entregar al teléfono 0274 123 4567 de Nueva Zelanda se requeriría la inclusión de +64 (para NZ), lo que da el formato: +642741234567 |
content* | Texto a enviar textualmente al teléfono móvil. El contenido debe ser enviado en el conjunto de caracteres UTF-8. La longitud máxima del mensaje que se puede enviar es equivalente a 10 mensajes SMS. Los mensajes concatenados (mensajes que son más grandes que un SMS estándar) son facturados por el total de mensajes SMS contenidos en el contenido del mensaje SMS concatenado. Nota: El número de caracteres por mensaje SMS depende de qué conjunto de caracteres se utiliza. |
reference | Campo de texto libre para su referencia, que puede ayudar a informar. Este campo es opcional y puede contener hasta 50 caracteres. |
requestSource | Le permite seleccionar el número de origen de sus SMS. En general, esto solo es útil en aplicaciones que tienen muchos números de origen. En la mayoría de los casos (a menos que se lo indique Modica), puede ignorar este parámetro y usar el parámetro de clase en su lugar. |
customer | No se usa. |
class | Le permite definir el tipo de mensaje. Las clases se utilizan para determinar cómo enrutar y facturar el mensaje, así como para proporcionar información útil para la presentación de informes. Modica le proporcionará un conjunto de clases válidas disponibles para su cuenta. |
cost | No se usa. |
mask | Si tiene el requisito de que su mensaje SMS parezca provenir de algo distinto al MSISDN o el código abreviado con el que ha sido aprovisionado, puede usar el parámetro de máscara para configurar esto. Una máscara puede contener hasta 11 caracteres GSM 3.38. La máscara debe haberse configurado previamente en https://omni.modicagroup.com/gateway/api_config/soap . Si usa una máscara que no está configurada en la lista de máscaras disponibles, la máscara se ignorará y el mensaje llegará desde la dirección de origen de la aplicación (por ejemplo, código corto). Las máscaras distinguen entre mayúsculas y minúsculas. |
replyTo ( long ) | Por defecto es 0. |
smsClass (integer) | Por defecto es 1 (std sms), si no es ‘NIL’ |
(*campos obligatorios marcados con un asterisco)
-
Para obtener más información sobre los conjuntos de caracteres SMS y la concatenación de SMS, visite: https://en.wikipedia.org/wiki/Concatenated_SMS
-
Modica puede entregar un conjunto completo de caracteres GSM 0.038, sin incluir los siguientes caracteres:
¤ ¡ § |
Envío SMS (SOAP)
Para enviar su aplicación de SMS a través de SOAP, use el método sendMessage como se define en la WSDL .
Outcome | Descripción |
---|---|
Successful Response | La definición del mensaje SOAP para una respuesta a un mensaje SMS enviado se denomina ’ sendMessageResponse ’ en el WSDL . Consiste en un objeto SonicMobileMessageStatus (ver el tipo en el WSDL ). El objeto contiene el mensaje asignado a ese mensaje por la puerta de enlace de Modica, el estado en cola del mensaje para ese destinatario, el número de teléfono móvil del destinatario y la referencia si está en uso. Nota: Actualmente solo se admite un destinatario por SMS. |
Failed Response | En caso de error, se devolverá una excepción de error SOAP que contiene una descripción del error. |
Respuestas MO
Si ha proporcionado una URL de respuesta MO en Omni.
Cuando se recibe un mensaje MO y se enruta a su aplicación, se realiza una solicitud GET a la URL de devolución de llamada de MO. Puede establecer esta URL aquí: https://omni.modicagroup.com/gateway/api_config/soap. Cuando configura la URL de respuesta MO, su URL no debe contener una query string, ya que se agrega automáticamente.
Recomendamos el uso de https: // para sus URL de respuesta.
NOTA : El certificado de seguridad debe coincidir con el nombre de *dominio que se está utilizando, los certificados autofirmados no se verificarán *y generarán errores.
Su servidor recibirá una solicitud GET como esta:
GET https://yourserver.example.com/receiveMessage?id=12345&source=%2B642741234567&destination=4433&content=SMS+message+content+here&operator=Telecom_NZ
El contendrá los siguientes parámetros GET:
Parámetro | Descripción |
---|---|
id | ID del mensaje. |
source | El número de teléfono móvil del remitente (incluidos el código inicial y el código de país) |
destination | El código corto de destino MSISDN |
content | El contenido del mensaje |
reply_to | La ID del mensaje al que responde este mensaje (solo cuando se usa una secuencia de números, y el MO responde a un mensaje MT) |
operator | El nombre del operador (operador de telefonía móvil) desde el que se envió el mensaje |
Si el mensaje del teléfono contiene contenido binario, se proporcionará un parámetro adicional:
Parámetro | Descripción |
---|---|
encoding | El valor “base64” se suministrará para mensajes que contengan datos binarios. El contenido se suministrará codificado utilizando base64, se necesita descifrar el contenido para obtener los datos originales. NOTA: Los mensajes SMS regulares con GSM de 7 bits o contenido Unicode no suministrarán este parámetro. |
Mensajes DLR
Si ha proporcionado una URL de respuestas DLR en Omni.
Cuando se recibe un mensaje DLR para un mensaje MT enviado por su aplicación, se realiza una solicitud GET a la URL de respuestas DLR. Puede establecer esta URL aquí: https://omni.modicagroup.com/gateway/api_config/soap. Cuando configura la URL de respuestas DLR, su URL no debe contener una query string, ya que se agrega automáticamente.
Recomendamos el uso de https: // para sus URL de respuestas.
NOTA : El certificado de seguridad debe coincidir con el nombre de dominio que se está utilizando, los certificados autofirmados no se verificarán y generarán errores.
Su servidor recibirá una solicitud GET como esta:
GET https://yourserver.com/receiveStatus?id=54321&status=received
El contendrá los siguientes parámetros GET:
Parámetro | Descripción |
---|---|
id | ID del mensaje |
status | El texto de estado del mensaje |
Cuando un mensaje SMS MT se envía correctamente a través de SOAP, se devuelve el ID de mensaje del gateway.
Para rastrear el estado de un mensaje, necesitará almacenar esa ID, ya que la respuesta de estado utilizará la ID para hacer referencia al mensaje.
Los estados posibles varían entre los operadores, por ejemplo, algunos operadores marcarán un mensaje como “rechazado” cuando el número de teléfono móvil no es válido, el teléfono no tiene crédito suficiente o el mensaje ha caducado. Otros operadores diferenciarán entre cada uno de estos eventos.
Tendrá que atender los siguientes estados:
Estado | Descripción |
---|---|
failed | La entrega del mensaje ha fallado debido a un problema de conectividad del operador |
sent | Mensaje enviado por el operador |
frozen | Error del operador que ha congelado este mensaje |
dead | Eliminado por el administrador |
received | El mensaje ha sido recibido por el teléfono |
submitted | Mensaje enviado con éxito al operador para su entrega |
rejected | El operador rechazó el mensaje |
expired | El operador no pudo entregar el mensaje en un período de tiempo específico. Por ejemplo, cuando el teléfono esta apagado |
Ejemplo : https://yourserver.com/receiveStatus?id=54321&status=received
Deberá especificar su URL aquí: https://omni.modicagroup.com/gateway/api_config/soap
Cuando un mensaje SMS MT se envía correctamente a través de SOAP, se devuelve el ID de mensaje al gateway.
Para rastrear el estado de un mensaje, necesitará almacenar esa ID, ya que la respuesta DLR de estado utilizará la ID para hacer referencia al mensaje.
Los estados posibles varían entre los operadores, por ejemplo, algunos operadores marcarán un mensaje como “rechazado” cuando el número de teléfono móvil no es válido, el teléfono no tiene crédito suficiente o el mensaje ha caducado. Otros operadores diferenciarán entre cada uno de estos eventos.
Ejemplo de cliente SOAP
<?php
define('WSDL_URL','https://api.modicagroup.com/ModicaSoap.wsdl');
define('APPLICATION', 'your_application_name');
define('PASSWORD', 'password');
define('SEND_TO_MOBILE','+6421xxxxxxx'); // Mobile # Intl Format
define('MESSAGE_CLASS','mt_message');
define('MESSAGE_REFERENCE','');
try {
$client = new SoapClient(
WSDL_URL,
array(
'trace' => true,
'exceptions' => true
)
);
$return = $client->sendMessage(
array('application' => APPLICATION,
'password' => PASSWORD,
'destination' => SEND_TO_MOBILE,
'content' => 'This is a test message.',
'reference' => MESSAGE_REFERENCE,
'class' => MESSAGE_CLASS)
);
} catch (SoapFault $fault) {
// log error here
}
?>
Códigos de Error
La respuesta que la puerta de enlace devuelva en los errores dependerá de la versión de API que solicite. Pueden ocurrir los siguientes errores:
Código | Mensaje | Descripción | v4 Response code |
---|---|---|---|
Modica.authenticationInvalid | Invalid application authentication. | Los parámetros de aplicación y contraseña faltan o son incorrectos | 400 |
Modica.invalidDestination | Destination mobile number [destination] rejected | El destino no coincide con esto regex /^+{0,1}[1-9]{1}[0-9]{7,15}$/) | 400 |
Modica.queueFailed | Could not queue message | El gateway no pudo crear el mensaje. La causa más probable de esto es que el número de destino no era válido o la red móvil para ese número no se ha configurado en su cuenta | 400 |
Modica.serviceFailed | Se ha producido un error inesperado al crear este mensaje | 400 |
System.Net.ServicePointManager.Expect100Continue = False
. Esto
debería permitir que la solicitud y la respuesta se envíen y analicen
correctamente.Ayuda
¿Tienes problemas para integrarte con alguno de nuestros servicios? Visite nuestro servicio de asistencia técnica en https://omni.modicagroup.com/docs/es/ o póngase en contacto con support@modicagroup.com y le ayudaremos a resolverlo.