Configuración de la verificación por SMS con Message Central
Central de mensajes es una solución de CPaaS con un conjunto de productos que incluye API de SMS OTP, API de SMS y la plataforma de marketing de WhatsApp. Puedes crea una cuenta gratis y recibirá un identificador de cliente, que utilizará en su solicitud.
Instalación de Python
- Descargar Python:
Visita el sitio web oficial de Python (https://www.python.org/downloads/) y descarga la última versión de Python para tu sistema operativo.
- Ejecute el instalador:
Una vez finalizada la descarga, ejecuta el archivo de instalación. Siga las instrucciones que aparecen en pantalla para instalar Python en su sistema. Asegúrese de marcar la casilla que dice «Agregar Python a PATH» durante la instalación.
- Verifique la instalación:
Abra la línea de comandos (en Windows) o la terminal (en macOS/Linux) y ejecute el siguiente comando para verificar la instalación:
python --version
Esto debería imprimir la versión de Python instalada. Si Python está instalado correctamente, deberías ver algo como:
Python 3.10.1
- Definir la variable PATH (solo en Windows):
Si Python no se reconoce como comando, es posible que deba agregarlo manualmente a la variable de entorno PATH. Para ello, siga estos pasos:
Haga clic con el botón derecho en «Mi PC» y seleccione «Propiedades».
Haga clic en «Configuración avanzada del sistema» > «Variables de entorno».
En «Variables del sistema», busque la variable «Ruta» y haga clic en «Editar».
Haga clic en «Nuevo» y añada la ruta a su instalación de Python (por ejemplo, C:\Python310) y haga clic en «Aceptar».
- Verifique la instalación de Python:
Cierre y vuelva a abrir la línea de comandos (o terminal) y vuelva a ejecutar python --version para comprobar que Python ahora se reconoce como un comando.
Después de seguir estos pasos, deberías tener Python instalado y listo para usarse en tu sistema.
Pasos para integrar
Este proceso implica los siguientes pasos:
- Obtener detalles de Message Central
- Agregar detalles de Message Central en el código
- Enviar una OTP de prueba para su verificación
a. Detalles de la central de mensajes.
Tras crear una cuenta en Message Central, necesitará los siguientes detalles:
- ID de cliente: puedes obtener el ID de cliente en Message Central Home Console
- Credenciales de inicio de sesión: necesitarás un correo electrónico y tendrás que crear una contraseña.
Agregar detalles de Message Central en el código
Para agregar detalles de MessageCentral en el código, busque la definición de la variable con el nombre «customerID», «correo electrónico» y «contraseña»:
customer_id = "C-45539F39A44****"
email = "abhishek*****k68@gmail.com"
password = "*******"
base_url = "https://cpaas.messagecentral.com"
auth_token = None
verification_id = None
verification_status = None
Ahora, necesitas crear un archivo de Python es decir, Main.py: Y añada el código proporcionado a este archivo.
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlparse, parse_qs
import json
import requests
import base64
customer_id = "C-45539F39A44****"
email = "abhishek*****k68@gmail.com"
password = "*****"
base_url = "https://cpaas.messagecentral.com"
auth_token = None
verification_id = None
verification_status = None
def generate_auth_token():
global auth_token
print(auth_token)
try:
base64_string = base64.b64encode(password.encode('utf-8')).decode('utf-8')
url = f"{base_url}/auth/v1/authentication/token?country=IN&customerId={customer_id}&email={email}&key={base64_string}&scope=NEW"
response = requests.get(url)
if response.status_code == 200:
auth_token = json.loads(response.text)["token"]
return auth_token
else:
print(f"Error generating auth token. Response code: {response.status_code}")
except Exception as e:
print(f"Exception: {e}")
return None
def send_otp(country_code, mobile_number):
global auth_token, verification_id
print(auth_token)
print(verification_id)
try:
url = f"{base_url}/verification/v3/send?countryCode={country_code}&customerId={customer_id}&flowType=SMS&mobileNumber={mobile_number}"
headers = {
"Accept": "*/*",
"authToken": auth_token
}
response = requests.post(url, headers=headers)
print(response.text)
if response.status_code == 200:
response_json = json.loads(response.text)
verification_id = response_json.get("data", {}).get("verificationId")
return verification_id
else:
print(f"Error sending OTP. Response code: {response.status_code}")
except Exception as e:
print(f"Exception: {e}")
return None
def validate_otp(otp_code, country_code, mobile_number):
global auth_token, verification_id, verification_status
print(auth_token)
print(verification_id)
print(verification_status)
try:
url = f"{base_url}/verification/v3/validateOtp?countryCode={country_code}&mobileNumber={mobile_number}&verificationId={verification_id}&customerId={customer_id}&code={otp_code}"
print(url)
headers = {
"Accept": "*/*",
"authToken": auth_token
}
response = requests.get(url, headers=headers)
print(response.text)
print(verification_id)
print(otp_code)
if response.status_code == 200:
verification_status = json.loads(response.text)["data"]["verificationStatus"]
print(verification_status)
return verification_status
else:
print(f"Error validating OTP. Response code: {response.status_code}")
except Exception as e:
print(f"Exception: {e}")
return None
class MyHTTPHandler(BaseHTTPRequestHandler):
def do_POST(self):
parsed_path = urlparse(self.path)
path = parsed_path.path
query = parse_qs(parsed_path.query)
if path.startswith("/sendotp/"):
country_code = path.split("/")[-2]
mobile_number = path.split("/")[-1]
generate_auth_token()
print(country_code)
print(mobile_number)
send_otp(country_code, mobile_number)
if verification_id is not None :
self.send_response(200)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write(f"Otp sent! Successfully".encode())
else :
self.send_response(400)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write(f"Bad Request".encode())
else:
self.send_response(404)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write("Not Found".encode())
def do_GET(self):
global verification_status
print(verification_status)
parsed_path = urlparse(self.path)
path = parsed_path.path
query = parse_qs(parsed_path.query)
if path.startswith("/validateOtp/"):
country_code = path.split("/")[-3]
mobile_number = path.split("/")[-2]
otp = path.split("/")[-1]
print(otp)
print(mobile_number)
print(country_code)
generate_auth_token()
validate_otp(otp,country_code, mobile_number)
if verification_status is not None and verification_status=="VERIFICATION_COMPLETED":
self.send_response(200)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write(f"Otp verification Done!".encode())
else :
self.send_response(400)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write(f"Bad Request".encode())
else:
self.send_response(404)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write("Not Found".encode())
def run(server_class=HTTPServer, handler_class=MyHTTPHandler, port=3000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f"Starting server on port {port}")
httpd.serve_forever()
if __name__ == "__main__":
run()
c. Enviar un SMS OTP de prueba para su verificación
Si necesita probar el servicio sin código, puede ir a verificación por SMS gratuita página en el sitio web de Message Central.
Para garantizar que la integración se realice correctamente, envíe un SMS OTP de prueba de la siguiente manera:
- Ejecute el código Python usando el comando
Compila y ejecuta tu archivo python con el comando python.
python Main.py
- Abra Postman y configure el método de solicitud como POST y
URL como http://localhost:3000/sendotp/<countryCode>/<phone_number>
Aquí está el puerto 3000, es predeterminado y está definido en código, se puede cambiar.
Por ejemplo, para la URL de un número de teléfono indio: http://localhost:3000/sendotp/91/123****123
- Imagen 1: Sending Otp

- Ahora tienes una OTP en tu bandeja de entrada de sms. Pruebe su propia API de validación de OTP para validar OTP.
Abra Postman y configure el método de solicitud como GET y
URL como http://localhost:3000/validateOtp/<countryCode>/<phone_number>/<otp>
Aquí está el puerto 3000, es predeterminado y está definido en código, se puede cambiar.
Por ejemplo, para la URL del número de teléfono indio: http://localhost:3000/validateOtp/91/123****123/ ****- Imagen 2: Verificación de Otp
