Paso 1: Registrarse e iniciar sesión
- Ir al registro de Message Central
- Crea tu cuenta gratuita
- Usa tus créditos gratuitos para probar y jugar con las OTP
Paso 2: Integración de API (¡desarrolladores, ensamblados!)
Hemos mantenido las cosas muy sencillas. Copia algunos fragmentos de código y lo probarás en poco tiempo.
¿Prefieres ver antes que programar? ¿Nuestro guía rápida de vídeo lo tiene todo cubierto.
Parámetro de API para Verify Now
Los siguientes parámetros deben enviarse al usar las API VerifyNow.
RCS/SAUTH
URL base de API Rest
Todos los puntos finales de la API de la plataforma que aparecen a continuación deben tener como prefijo la siguiente URL:
https://cpaas.messagecentral.com
Generar token
Al usar la API de verificación por SMS de Verify Now para enviar códigos de verificación por SMS, la llamada inicial debe ser a la API de generación de tokens.
Esta API devuelve un token que debe incluirse en todas las llamadas posteriores. Se necesita un token de autenticación para validar al usuario y debe incluirse en la sección de encabezado de cada solicitud.
Ruta URL de solicitud:
/auth/v1/authentication/token
cURL
1curl --location 'https://cpaas.messagecentral.com/auth/v1/authentication/token?
2customerId=%3CCustomerId%3E&key=%3CBase64%20Encrypted%20password%3E&scope=NEW&country=91
3&email=test%40messagecentral.com' \
4--header 'accept: */*'
NOTA: Para convertir un comando cURL en código con Postman, abre Postman, importa el comando cURL mediante el botón «Importar» y, a continuación, genera el código en tu idioma preferido haciendo clic en el botón «Código» situado a la derecha de la solicitud.
Respuesta JSON
1{
2 "status": Integer,
3 "token": "String"
4}
Ejemplo de código
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com")
.method("GET", body)
.addHeader("accept", "*/*")
.build();
Response response = client.newCall(request).execute();
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com',
'headers': {
'accept': '*/*'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'accept' => '*/*'
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
import requests
url = "https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com"
payload = {}
headers = {
'accept': '*/*'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "net/http"
url = URI("https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accept"] = "*/*"
response = https.request(request)
puts response.read_body
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com");
request.Headers.Add("accept", "*/*");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Enviar OTP
Para enviar OTP a un número de teléfono móvil, a continuación se muestran los parámetros de solicitud. El token de autenticación es necesario para enviar la OTP, que es generada por la API de tokens generada (que puedes encontrar más arriba en la sección Introducción).
Ruta URL de solicitud:
Una respuesta correcta devolverá un código de estado 200.
/verification/v3/send
Parámetros de URL de solicitud:
cURL
1curl --location --request POST 'https://cpaas.messagecentral.com/verification/v3/send?
2countryCode=91&flowType=SMS&mobileNumber=9999999999' \
3--header 'authToken:
4eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDIGNzQwNCI6ImIhdCI6MTcxMjExOTA0MCwiZXhwIjo'
NOTA: Para convertir un comando cURL en código con Postman, abre Postman, importa el comando cURL mediante el botón «Importar» y, a continuación, genera el código en tu idioma preferido haciendo clic en el botón «Código» situado a la derecha de la solicitud. Puedes cambiar el FlowType según el canal que elijas.
Respuesta JSON
1{
2 "responseCode": 200,
3 "message": "SUCCESS",
4 "data": {
5 "verificationId": "xxxx",
6 "mobileNumber": "xxxx",
7 "responseCode": "200",
8 "errorMessage": null,
9 "timeout": "60",
10 "smCLI": null,
11 "transactionId": "xxxx"
12 }
13}
Ejemplo de código
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999")
.method("POST", body)
.addHeader("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw")
.build();
Response response = client.newCall(request).execute();
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999',
'headers': {
'authToken': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'authToken' => 'eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw'
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
import requests
url = "https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999"
payload = {}
headers = {
'authToken': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "net/http"
url = URI("https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authToken"] = "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw"
response = https.request(request)
puts response.read_body
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999");
request.Headers.Add("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Validar OTP
El método validateOTP es un punto final de la API REST para validar una contraseña de un solo uso (OTP) para los clientes.
Ruta URL de solicitud:
Una respuesta correcta devolverá un código de estado 200.
/verification/v3/validateOtp/
- Para soporte en varios idiomas
- por defecto es inglés
- Por ahora, solo admitimos inglés
cURL
1curl --location 'https://cpaas.messagecentral.com/verification/v3/validateOtp?
2&verificationId=2949&code=1476' \
3--header 'authToken:
4eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDIGNzQwNCI6ImIhdCI6MTcxMjExOTA0MC'
NOTA: Para convertir un comando cURL en código con Postman, abre Postman, importa el comando cURL mediante el botón «Importar» y, a continuación, genera el código en tu idioma preferido haciendo clic en el botón «Código» situado a la derecha de la solicitud.
Respuesta JSON
Una respuesta correcta devolverá un código de estado 200.
1{
2 "responseCode": 200,
3 "message": "SUCCESS",
4 "data": {
5 "verficationId": "xxxx",
6 "mobileNumber": "xxxx",
7 "responseCode": "200",
8 "errorMessage": null,
9 "verificationStatus": "VERIFICATION_COMPLETED",
10 "authToken": null,
11 "transactionId": "xxxx"
12 }
13}
Ejemplo de código
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://cpaas.messagecentral.com/verification/v3/validateOtp?&verificationId=2949&code=1476")
.method("GET", body)
.addHeader("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOT")
.build();
Response response = client.newCall(request).execute();
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://cpaas.messagecentral.com/verification/v3/validateOtp?&verificationId=2949&code=1476',
'headers': {
'authToken': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOT'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://cpaas.messagecentral.com/verification/v3/validateOtp?&verificationId=2949&code=1476');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'authToken' => 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOT'
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://cpaas.messagecentral.com/verification/v3/validateOtp?&verificationId=2949&code=1476");
request.Headers.Add("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOT");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
require "uri"
require "net/http"
url = URI("https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authToken"] = "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw"
response = https.request(request)
puts response.read_body
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999");
request.Headers.Add("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Códigos de respuesta
¿Necesitas ayuda?
¿Necesitas una mano? Nuestros expertos están disponibles las 24 horas del día, los 7 días de la semana para guiarlo en cualquier momento y en cualquier momento.
Correo electrónico de soporte: support@messagecentral.com
Preguntas frecuentes
1. ¿Cómo integro la API OTP de VerifyNow con un código personalizado?
Se puede integrar fácilmente Verificar ahora con tu propia base de código usando Cartero o cualquier herramienta de prueba de API. Usa el Método POST para enviar SMS OTP y Método GET para validar las OTP. Puedes generar código de ejemplo en tu lenguaje de programación preferido directamente desde Postman.
2. ¿Por qué aparece el error «Método no permitido» o el código de error 405?
Debes asegurarte de que la URL del punto final de la API de token coincida con la definida en la documentación. Lo mismo se menciona a continuación: -
También puede consultar nuestra vídeo sobre la integración de API que explica en detalle todo el proceso de integración.
- API de tokens: OBTENER
- Enviar API: PUBLICAR
- Validar API: GET
Consulta la guía oficial en vídeo de integración para ver la configuración paso a paso.
3. ¿Cómo puedo probar las API de verificación por SMS de VerifyNow?
Puede probar todas las API de verificación OTP y SMS de VerifyNow usando Cartero. Importe la colección de API, introduzca sus credenciales y ejecute solicitudes de muestra para simular los envíos y validaciones de OTP antes de pasar a la producción.
4. ¿Por qué aparece una página de «error de etiqueta blanca» al llamar a la API?
Por lo general, esto significa que hay un problema con el paquete de solicitud o con la configuración del entorno. Entre los motivos más comunes se incluyen:
- Valores incorrectos del cuerpo o del marcador de posición de la API
- Estructura CURL incorrecta o encabezados faltantes
- Utilizar el punto final de ensayo en lugar de la producción
Comprueba las URL de tu carga útil y de punto final antes de volver a intentarlo.
5. ¿Por qué aparece el código de error 401 (no autorizado)?
Error 401 No autorizado significa tu Token de autenticación o las credenciales no son válidas. Asegúrese de que su token se haya generado y agregado correctamente al encabezado de la solicitud tal y como se describe en la documentación de la API VerifyNow.
6. ¿Por qué aparece el código de error 400 («solicitud incorrecta») en Postman?
Error 400 Solicitud incorrecta normalmente indica un problema con los parámetros o los encabezados. Compruebe si hay:
- Faltan parámetros obligatorios en el cuerpo de la API
- AuthToken incorrecto
- Tipo de contenido incorrecto (utilice application/x-www-form-urlencoded)
7. ¿Cómo puedo generar un AuthToken en la API VerifyNow?
Puedes generar tu Token de autenticación utilizando el API GET Token:
- Busca tu clave en la consola de la API
- Codifica usando Base 64
- Reemplace el valor del marcador de posición en el campo Clave
- Pulsa la API GET Token para recibir tu AuthToken
8. ¿Dónde debo usar el authToken en las API de VerifyNow?
El generado Token de autenticación debe añadirse al encabezado de tu ENVIAR API solicitudes. Esto autentica su solicitud de OTP y garantiza una comunicación segura entre su aplicación y VerifyNow.
9. ¿Qué parámetros debo modificar en la API GET Token?
Al generar un AuthToken, actualiza los siguientes campos:
- campo
- ID de cliente
- correo electrónico
- clave
Al generar un AuthToken, actualiza los siguientes campos:
10. ¿Qué parámetros debo cambiar en la API SEND?
Cuando envíes una OTP, asegúrate de reemplazar:
- código de país
- ID de cliente
- longitud superior
- número de móvil
Esto garantiza que tus OTP se envíen al usuario y la región correctos.