La puerta de enlace de nuestra API le permite conectarse a nuestras interfaces a través de HTTP/S y permite a sus aplicaciones integrar SMS a través de Internet. Nuestra API utiliza un punto final RESTful y nuestras cargas útiles de solicitud y respuesta están formateadas como JSON, pero también proporcionamos GET como alternativa.
Es compatible con SMPP versión 3.4. Si necesita un enlace SMPP, póngase en contacto con sales@reach-data.com y estaremos encantados de configurárselo.
Todas las solicitudes requieren que se introduzcan su nombre de usuario y contraseña en el encabezado. Estos se pueden encontrar una vez que haya iniciado sesión en Asistencia > Desarrollador > Detalles de la API
Encabezado | Descripción |
---|---|
username | Su nombre de usuario de la API de Reach Interactive |
password | Su contraseña de la API de Reach Interactive |
Código | Descripción |
---|---|
200 | Solicitud correcta |
400 | Los detalles no son correctos o faltan parámetros obligatorios |
401 | Datos de la cuenta no válidos |
402 | Sin créditos |
403 | La cuenta no tiene permiso para realizar esta acción. |
500 | Error de servicio. |
503 | El servicio no está disponible. |
Los códigos DLR son los mismos para nuestras API y nuestros enlaces SMPP.
Código | Descripción |
---|---|
000 | Entregado |
600 | No hay créditos para enviar |
601 | Sin ruta |
602 | Número en la lista negra detectado |
603 | Número de destino erróneo |
604 | Número de origen erróneo |
605 | Cola de mensajes de SMSC de destino |
606 | Fallo al enviar SMSC de destino |
607 | Error general |
608 | Mensaje no deseado detectado |
609 | Período de validez vencido |
610 | Dirección de origen no autorizada |
611 | Código DLR desconocido |
612 | Enviar tiempo de espera |
El URI para esta sección es
https://api.reach-interactive.com/sms/[Acción]
El URI para esta sección es
GET/sms/balance
Parámetros obligatorios
No hay parámetros adicionales para el saldo
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
class Program
{
static void Main(string[] args)
{
var serializer = new JavaScriptSerializer();
try
{
var url = "http://api.reach-interactive.com/sms/balance";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "GET";
request.Headers.Add("Username", "Su nombre de usuario de Reach");
request.Headers.Add("Password", "Su contraseña de Reach");
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var jsonResponse = reader.ReadToEnd();
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, Saldo: {1}, Descripción: {2}",
data["Correcto"],
data["Saldo"],
data["Descripción"]);
}
}
}
catch (WebException err)
{
using (var response = err.Response.GetResponseStream())
using (var reader = new StreamReader(response))
{
var jsonResponse = reader.ReadToEnd();
try
{
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, Descripción: {1}, Código de estado HTTP: {2}",
data["Correcto"],
data["Descripción"],
(int)((HttpWebResponse)err.Response).StatusCode);
}
catch (Exception)
{
Console.WriteLine(jsonResponse);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Console.ReadKey();
}
}
}
curl http://api.reach-interactive.com/sms/balance -H username: SuNombreDeUsuarioDeReach' -H password: SuContraseñaDeReach';
<?php
$url = "http://api.reach-interactive.com/sms/balance";
// The data to send to the API
$header = array();
$header[] = 'Accept: application/json';
$header[] = 'username: su nombre de usuario de Reach';
$header[] = 'password: su contraseña de Reach';
//cURL starts
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_HTTPGET, true);
$json_response = curl_exec($crl);
$status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
}
else{
$response = json_decode($json_response, true);
print_r($response);
}
curl_close($crl);
?>
Crea un nuevo objeto de mensaje. Devolvemos una matriz de cada id. generado. Por cada solicitud se puede introducir un máximo de 50 destinatarios.
POST/sms/message
Parámetros obligatorios
Parámetro | Descripción |
---|---|
to | El número al que desea enviar el mensaje. Puede componerse de múltiples números separados por una «,» o «;». |
from | Por parte de quién aparecerá enviado el mensaje. |
message |
El mensaje a enviar al teléfono, los primeros 160 caracteres serán un solo mensaje; todo lo que sobre se dividirá en mensajes de un tamaño de 153 caracteres. Para Unicode, este es el texto codificado en hexadecimal Para mensajería binaria, estos son los datos del usuario (140 octetos máximo) |
Parámetros opcionales
Parámetro | Descripción | Por defecto |
---|---|---|
valid | Cuántas horas necesita que intentemos enviar el SMS antes de que expire, el mínimo es de 15 minutos (0.25). | 72 |
reference | La referencia con la que desea que se guarde el mensaje en nuestro sistema. | |
callbackUrl | La URL a la que desea que enviemos el informe de entrega. Para más información, consulte la sección de Informe de entrega a continuación | |
scheduled | La fecha y hora en que desea que se envíe el mensaje (aaaa/MM/dd hh:mm) | |
coding | El tipo de mensaje que desea enviar, 1 = Texto, 2 = Unicode, 3 = Binario | 1 |
udh | Encabezado de datos del usuario |
Ejemplo de carga útil JSON
{
"to" : "447xxxxxxxxx",
"from" : "Reach",
"message" : "Prueba de envío Json"
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
class Program
{
static void Main(string[] args)
{
var serializer = new JavaScriptSerializer();
try
{
var url = "http://api.reach-interactive.com/sms/message";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "POST";
request.Headers.Add("Username", "Su nombre de usuario de Reach");
request.Headers.Add("Password", "Su contraseña de Reach");
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
string json = "{ \"to\" : \"447xxxxxxxxx\", \"from\" : \"Reach\", \"message\" : \"Prueba de mensaje API\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var jsonResponse = reader.ReadToEnd();
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
foreach (Dictionary<string, dynamic> item in data)
{
Console.WriteLine("Correcto: {0}, Id.: {1}, Descripción: {2}",
item["Correcto"],
item["Id."],
item["Descripción"]);
}
}
}
}
catch (WebException err)
{
using (var response = err.Response.GetResponseStream())
using (var reader = new StreamReader(response))
{
var jsonResponse = reader.ReadToEnd();
try
{
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, Descripción: {1}, Código de estado HTTP: {2}",
data["Correcto"],
data["Descripción"],
(int) ((HttpWebResponse) err.Response).StatusCode);
}
catch (Exception)
{
Console.WriteLine(jsonResponse);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Console.ReadKey();
}
}
}
curl -X "POST" http://api.reach-interactive.com/sms/message -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach -H
"Content-Type: application/json -d "{\"to\":\"NúmeroDeTeléfonoDelDestinatario\",\"from\":\"NombreRemitente\",\"message\":\"SuMensaje\"}"
<?php
$url = "http://api.reach-interactive.com/sms/message";
// The data to send to the API
$header = array();
$header[] = 'Accept: application/json';
$header[] = 'Content-Type: application/json';
$header[] = 'username: Su nombre de usuario de Reach';
$header[] = 'password: Su contraseña de Reach';
$data = array("to" => "447xxxxxxxxx", "from" => "Reach", "message" => "Prueba de envío API PHP");
$data_string = json_encode($data);
//cURL starts
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "POST");
$json_response = curl_exec($crl);
$status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
}
else{
$response = json_decode($json_response, true);
print_r($response);
}
curl_close($crl);
?>
Esto se puede utilizar para recuperar los detalles de un mensaje enviado a través de nuestros enlaces API o SMPP.
GET/sms/message/{Id}
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
class Program
{
static void Main(string[] args)
{
var serializer = new JavaScriptSerializer();
try
{
var url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "GET";
request.Headers.Add("Username", "Su nombre de usuario de Reach");
request.Headers.Add("Password", "Su contraseña de Reach");
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var jsonResponse = reader.ReadToEnd();
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, To: {1}, From: {2}, Text: {3}, Sent: {4}, Status: {5}, Delivered: {6}, Code: {7}, Description: {8}",
data[0]["Success"],
data[0]["To"],
data[0]["Originator"],
data[0]["Text"],
data[0]["Sent Date"],
data[0]["Message Status"],
data[0]["Delivered Date"],
data[0]["DlrCode"],
data[0]["Description"]);
}
}
}
catch (WebException err)
{
using (var response = err.Response.GetResponseStream())
using (var reader = new StreamReader(response))
{
var jsonResponse = reader.ReadToEnd();
try
{
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, Description: {1}, Código de estado HTTP: {2}",
data["Correcto"],
data["Description"],
(int)((HttpWebResponse)err.Response).StatusCode);
}
catch (Exception)
{
Console.WriteLine(jsonResponse);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Console.ReadKey();
}
}
}
curl http://http-1-uat.reach-interactive.com/sms/message/{id} -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach
<?php
$url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
// The data to send to the API
$header = array();
$header[] = 'Aceptar: application/json';
$header[] = 'username: Su nombre de usuario de Reach';
$header[] = 'password: Su contraseña de Reach';
//cURL starts
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_HTTPGET, true);
$json_response = curl_exec($crl);
$status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
}
else{
$response = json_decode($json_response, true);
print_r($response);
}
curl_close($crl);
?>
Respuesta devuelta
[{
"Method":"H",
"To":"447xxxxxxxxx",
"Originator":"Reach",
"Text":"Su Mensaje",
"Sent Date":"2016-06-23T15:27:08.497",
"Message Status":"Entregado",
"Delivered Date":"2016-06-23T15:27:17.973",
"DlrCode":"000",
"Description":"Código de error desconocido",
"Reference":"",
"Success":true
}]
Esto se puede utilizar para eliminar un mensaje programado que no se ha enviado.
DELETE /sms/message/{Id}
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
class Program
{
static void Main(string[] args)
{
var serializer = new JavaScriptSerializer();
try
{
var url = "http://api.reach-interactive.com/sms/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "DELETE";
request.Headers.Add("Username", "Su nombre de usuario de Reach");
request.Headers.Add("Password", "Su contraseña de Reach");
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var jsonResponse = reader.ReadToEnd();
dynamic data = serializer.Deserialize(jsonResponse);
Console.WriteLine("Correcto: {0}, Description: {1}",
data["Success"],
data["Description"]);
}
}
}
catch (WebException err)
{
using (var response = err.Response.GetResponseStream())
using (var reader = new StreamReader(response))
{
var jsonResponse = reader.ReadToEnd();
try
{
dynamic data = serializer.Deserialize (jsonResponse);
Console.WriteLine("Correcto: {0}, Description: {1}, Código de estado HTTP: {2}",
data["Success"],
data["Description"],
(int)((HttpWebResponse)err.Response).StatusCode);
}
catch (Exception)
{
Console.WriteLine(jsonResponse);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Console.ReadKey();
}
}
}
curl -X "DELETE" http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach
<?php
$url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
// Los datos a enviar a la API
$header = array();
$header[] = 'Aceptar: application/json';
$header[] = 'username: Su nombre de usuario de Reach';
$header[] = 'password: Su contraseña de Reach';
//cURL starts
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "DELETE");
$json_response = curl_exec($crl);
$status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
}
else{
$response = json_decode($json_response, true);
print_r($response);
}
curl_close($crl);
?>
Respuesta devuelta
{
"Success":true,
"Id":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"Description":"Id. eliminado"
}
Podemos proporcionar una respuesta HTTP GET del mensaje
Estos son los parámetros que se devolverán
Parámetro | Descripción |
---|---|
msgid | El id. que se suministró originalmente en la llamada a API |
msisdn | El número del que procede el informe de entrega |
timestamp | La fecha y hora del informe de entrega |
status | El estado del informe de entrega |
code | El código DLR del mensaje |
Información adicional
Si necesita más información en la devolución de llamada, puede añadirla a la URL que ha proporcionado.
Por ejemplo, si usted escribe https://www.yourdomain.com/?CustomerId=123, la llamada que se devuelve es la siguiente
https://www.yourdomain.com/?CustomerId=123
&MsgId=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
&MSISDN=447xxxxxxxxx&Timestamp=dd/MM/yyyy
hh:mm:ss&Status=Delivered&Code=000
Estado
Estado | Descripción |
---|---|
delivered | Entregado con éxito. |
rejected | Mensaje rechazado. |
expired | No se ha podido entregar el mensaje dentro de un plazo de tiempo válido. |
undelivered | No se ha entregado el mensaje. |
Después de comprar un número de entrada largo o una palabra clave de código corto. vaya a Bandeja de entrada > Bandeja de entrada en el menú para ver/editar la configuración de cada mensaje entrante.
La puerta de enlace de nuestra API le permite conectarse a nuestras interfaces a través de HTTP/S y permite a sus aplicaciones integrar SMS a través de Internet. Nuestra API utiliza un punto final RESTful y nuestras cargas útiles de solicitud y respuesta están formateadas como JSON, pero también proporcionamos GET como alternativa.
Es compatible con SMPP versión 3.4. Si necesita un enlace SMPP, póngase en contacto con sales@reach-data.com y estaremos encantados de configurárselo.
Todas las solicitudes requieren que se introduzcan su nombre de usuario y contraseña en el encabezado. Estos se pueden encontrar una vez que haya iniciado sesión en Asistencia > Desarrollador > Detalles de la API
Encabezado | Descripción |
---|---|
username | Su nombre de usuario de la API de Reach Interactive |
password | Su contraseña de la API de Reach Interactive |
Código | Descripción |
---|---|
200 | Solicitud correcta |
400 | Los detalles no son correctos o faltan parámetros obligatorios |
401 | Datos de la cuenta no válidos |
402 | Sin créditos |
403 | La cuenta no tiene permiso para realizar esta acción. |
500 | Error de servicio. |
503 | El servicio no está disponible. |
Los códigos DLR son los mismos para nuestras API y nuestros enlaces SMPP.
Código | Descripción |
---|---|
000 | Entregado |
600 | No hay créditos para enviar |
601 | Sin ruta |
602 | Número en la lista negra detectado |
603 | Número de destino erróneo |
604 | Número de origen erróneo |
605 | Cola de mensajes de SMSC de destino |
606 | Fallo al enviar SMSC de destino |
607 | Error general |
608 | Mensaje no deseado detectado |
609 | Período de validez vencido |
610 | Dirección de origen no autorizada |
611 | Código DLR desconocido |
612 | Enviar tiempo de espera |
El URI para esta sección es
https://api.reach-interactive.com/sms/[Acción]
El URI para esta sección es
GET/sms/balance
Parámetros obligatorios
No hay parámetros adicionales para el saldo
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
class Program
{
static void Main(string[] args)
{
var serializer = new JavaScriptSerializer();
try
{
var url = "http://api.reach-interactive.com/sms/balance";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "GET";
request.Headers.Add("Username", "Su nombre de usuario de Reach");
request.Headers.Add("Password", "Su contraseña de Reach");
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var jsonResponse = reader.ReadToEnd();
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, Saldo: {1}, Descripción: {2}",
data["Correcto"],
data["Saldo"],
data["Descripción"]);
}
}
}
catch (WebException err)
{
using (var response = err.Response.GetResponseStream())
using (var reader = new StreamReader(response))
{
var jsonResponse = reader.ReadToEnd();
try
{
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, Descripción: {1}, Código de estado HTTP: {2}",
data["Correcto"],
data["Descripción"],
(int)((HttpWebResponse)err.Response).StatusCode);
}
catch (Exception)
{
Console.WriteLine(jsonResponse);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Console.ReadKey();
}
}
}
curl http://api.reach-interactive.com/sms/balance -H username: SuNombreDeUsuarioDeReach' -H password: SuContraseñaDeReach';
<?php
$url = "http://api.reach-interactive.com/sms/balance";
// The data to send to the API
$header = array();
$header[] = 'Accept: application/json';
$header[] = 'username: su nombre de usuario de Reach';
$header[] = 'password: su contraseña de Reach';
//cURL starts
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_HTTPGET, true);
$json_response = curl_exec($crl);
$status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
}
else{
$response = json_decode($json_response, true);
print_r($response);
}
curl_close($crl);
?>
Crea un nuevo objeto de mensaje. Devolvemos una matriz de cada id. generado. Por cada solicitud se puede introducir un máximo de 50 destinatarios.
POST/sms/message
Parámetros obligatorios
Parámetro | Descripción |
---|---|
to | El número al que desea enviar el mensaje. Puede componerse de múltiples números separados por una "," o ";". |
from | Por parte de quién aparecerá enviado el mensaje. |
message |
El mensaje a enviar al teléfono, los primeros 160 caracteres serán un solo mensaje; todo lo que sobre se dividirá en mensajes de un tamaño de 153 caracteres. Para Unicode, este es el texto codificado en hexadecimal Para mensajería binaria, estos son los datos del usuario (140 octetos máximo) |
Parámetros opcionales
Parámetro | Descripción | Por defecto |
---|---|---|
valid | Cuántas horas necesita que intentemos enviar el SMS antes de que expire, el mínimo es de 15 minutos (0.25). | 72 |
reference | La referencia con la que desea que se guarde el mensaje en nuestro sistema. | |
callbackurl | La URL a la que desea que enviemos el informe de entrega. Para más información, consulte la sección de Informe de entrega a continuación | |
scheduled | La fecha y hora en que desea que se envíe el mensaje (aaaa/MM/dd hh:mm) | |
coding | El tipo de mensaje que desea enviar, 1 = Texto, 2 = Unicode, 3 = Binario | 1 |
udh | Encabezado de datos del usuario |
Ejemplo de carga útil JSON
{
"to" : "447xxxxxxxxx",
"from" : "Reach",
"message" : "Prueba de envío Json"
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
class Program
{
static void Main(string[] args)
{
var serializer = new JavaScriptSerializer();
try
{
var url = "http://api.reach-interactive.com/sms/message";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "POST";
request.Headers.Add("Username", "Su nombre de usuario de Reach");
request.Headers.Add("Password", "Su contraseña de Reach");
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
string json = "{ \"to\" : \"447xxxxxxxxx\", \"from\" : \"Reach\", \"message\" : \"Prueba de mensaje API\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var jsonResponse = reader.ReadToEnd();
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
foreach (Dictionary<string, dynamic> item in data)
{
Console.WriteLine("Correcto: {0}, Id.: {1}, Descripción: {2}",
item["Correcto"],
item["Id."],
item["Descripción"]);
}
}
}
}
catch (WebException err)
{
using (var response = err.Response.GetResponseStream())
using (var reader = new StreamReader(response))
{
var jsonResponse = reader.ReadToEnd();
try
{
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, Descripción: {1}, Código de estado HTTP: {2}",
data["Correcto"],
data["Descripción"],
(int) ((HttpWebResponse) err.Response).StatusCode);
}
catch (Exception)
{
Console.WriteLine(jsonResponse);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Console.ReadKey();
}
}
}
curl -X "POST" http://api.reach-interactive.com/sms/message -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach -H
"Content-Type: application/json -d "{\"to\":\"NúmeroDeTeléfonoDelDestinatario\",\"from\":\"NombreRemitente\",\"message\":\"SuMensaje\"}"
<?php
$url = "http://api.reach-interactive.com/sms/message";
// The data to send to the API
$header = array();
$header[] = 'Accept: application/json';
$header[] = 'Content-Type: application/json';
$header[] = 'username: Su nombre de usuario de Reach';
$header[] = 'password: Su contraseña de Reach';
$data = array("to" => "447xxxxxxxxx", "from" => "Reach", "message" => "Prueba de envío API PHP");
$data_string = json_encode($data);
//cURL starts
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "POST");
$json_response = curl_exec($crl);
$status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
}
else{
$response = json_decode($json_response, true);
print_r($response);
}
curl_close($crl);
?>
Esto se puede utilizar para recuperar los detalles de un mensaje enviado a través de nuestros enlaces API o SMPP.
GET/sms/message/{Id}
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
class Program
{
static void Main(string[] args)
{
var serializer = new JavaScriptSerializer();
try
{
var url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "GET";
request.Headers.Add("Username", "Su nombre de usuario de Reach");
request.Headers.Add("Password", "Su contraseña de Reach");
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var jsonResponse = reader.ReadToEnd();
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, To: {1}, From: {2}, Text: {3}, Sent: {4}, Status: {5}, Delivered: {6}, Code: {7}, Description: {8}",
data[0]["Success"],
data[0]["To"],
data[0]["Originator"],
data[0]["Text"],
data[0]["Sent Date"],
data[0]["Message Status"],
data[0]["Delivered Date"],
data[0]["DlrCode"],
data[0]["Description"]);
}
}
}
catch (WebException err)
{
using (var response = err.Response.GetResponseStream())
using (var reader = new StreamReader(response))
{
var jsonResponse = reader.ReadToEnd();
try
{
dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
Console.WriteLine("Correcto: {0}, Description: {1}, Código de estado HTTP: {2}",
data["Correcto"],
data["Description"],
(int)((HttpWebResponse)err.Response).StatusCode);
}
catch (Exception)
{
Console.WriteLine(jsonResponse);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Console.ReadKey();
}
}
}
curl http://http-1-uat.reach-interactive.com/sms/message/{id} -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach
<?php
$url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
// The data to send to the API
$header = array();
$header[] = 'Aceptar: application/json';
$header[] = 'username: Su nombre de usuario de Reach';
$header[] = 'password: Su contraseña de Reach';
//cURL starts
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_HTTPGET, true);
$json_response = curl_exec($crl);
$status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
}
else{
$response = json_decode($json_response, true);
print_r($response);
}
curl_close($crl);
?>
Respuesta devuelta
[{
"Method":"H",
"To":"447xxxxxxxxx",
"Originator":"Reach",
"Text":"Su Mensaje",
"Sent Date":"2016-06-23T15:27:08.497",
"Message Status":"Entregado",
"Delivered Date":"2016-06-23T15:27:17.973",
"DlrCode":"000",
"Description":"Código de error desconocido",
"Reference":"",
"Success":true
}]
Esto se puede utilizar para eliminar un mensaje programado que no se ha enviado.
DELETE /sms/message/{Id}
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
class Program
{
static void Main(string[] args)
{
var serializer = new JavaScriptSerializer();
try
{
var url = "http://api.reach-interactive.com/sms/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "DELETE";
request.Headers.Add("Username", "Su nombre de usuario de Reach");
request.Headers.Add("Password", "Su contraseña de Reach");
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var jsonResponse = reader.ReadToEnd();
dynamic data = serializer.Deserialize(jsonResponse);
Console.WriteLine("Correcto: {0}, Description: {1}",
data["Success"],
data["Description"]);
}
}
}
catch (WebException err)
{
using (var response = err.Response.GetResponseStream())
using (var reader = new StreamReader(response))
{
var jsonResponse = reader.ReadToEnd();
try
{
dynamic data = serializer.Deserialize(jsonResponse);
Console.WriteLine("Correcto: {0}, Description: {1}, Código de estado HTTP: {2}",
data["Success"],
data["Description"],
(int)((HttpWebResponse)err.Response).StatusCode);
}
catch (Exception)
{
Console.WriteLine(jsonResponse);
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Console.ReadKey();
}
}
}
curl -X "DELETE" http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach
<?php
$url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
// Los datos a enviar a la API
$header = array();
$header[] = 'Aceptar: application/json';
$header[] = 'username: Su nombre de usuario de Reach';
$header[] = 'password: Su contraseña de Reach';
//cURL starts
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "DELETE");
$json_response = curl_exec($crl);
$status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
}
else{
$response = json_decode($json_response, true);
print_r($response);
}
curl_close($crl);
?>
Respuesta devuelta
{
"Success":true,
"Id":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"Description":"Id. eliminado"
}
Podemos proporcionar una respuesta HTTP GET del mensaje
Estos son los parámetros que se devolverán
Parámetro | Descripción |
---|---|
msgid | El id. que se suministró originalmente en la llamada a API |
msisdn | El número del que procede el informe de entrega |
timestamp | La fecha y hora del informe de entrega |
status | El estado del informe de entrega |
code | El código DLR del mensaje |
Información adicional
Si necesita más información en la devolución de llamada, puede añadirla a la URL que ha proporcionado.
Por ejemplo, si usted escribe https://www.yourdomain.com/?CustomerId=123, la llamada que se devuelve es la siguiente
https://www.yourdomain.com/?CustomerId=123
&MsgId=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
&MSISDN=447xxxxxxxxx&Timestamp=dd/MM/yyyy
hh:mm:ss&Status=Delivered&Code=000
Estado
Estado | Descripción |
---|---|
delivered | Entregado con éxito. |
rejected | Mensaje rechazado. |
expired | No se ha podido entregar el mensaje dentro de un plazo de tiempo válido. |
undelivered | No se ha entregado el mensaje. |
Después de comprar un número de entrada largo o una palabra clave de código corto. vaya a Bandeja de entrada > Bandeja de entrada en el menú para ver/editar la configuración de cada mensaje entrante.
CLIENTE: SKINNY TAN
©2002-2025 Todos los derechos reservados. Reach Interactive© es una marca registrada de Reach-Data Ltd, registrada en España. Número de NIF: N6060931J. Privacidad y Condiciones