API de verificación de SMS con PHP

Version – 1.0

Configuración para la verificación por SMS

  1. Cree una cuenta de MessageCentral: Inscríbase en una central de mensajes cuenta para empezar. Recibirás un identificador de cliente, que utilizarás en tu solicitud.
  1. Para instalar PHP, sigue estos pasos:

Descargar PHP:

Ve a la página de descarga de PHP en el sitio web oficial de PHP: https://www.php.net/downloads.

Descarga la versión más reciente de PHP para tu sistema operativo (Windows, macOS o Linux).

Instala PHP:

Ventanas:

Ejecute el instalador de PHP descargado.

Siga las instrucciones que aparecen en pantalla para instalar PHP. Puede que tengas que elegir el directorio de instalación y configurar algunas opciones.

MacOS/Linux:

Extraiga el archivo PHP descargado a una ubicación de su sistema.

Configure PHP editando el archivo php.ini. Es posible que tengas que configurar extensiones y otros ajustes en función de tus necesidades.

Verifique la instalación:

Abra una línea de comandos (en Windows) o una terminal (en macOS/Linux).

Ejecute el siguiente comando para verificar la instalación:

php --version

Esto debería imprimir la versión PHP instalada. Si está instalado correctamente, deberías ver algo como:

PHP x.x.x (cli) (built: xxxxxx) (...)

Establecer la variable de entorno PATH (Windows):

Haga clic con el botón derecho en «Este PC» o «Mi PC» y seleccione «Propiedades».

Haga clic en «Configuración avanzada del sistema» y luego en «Variables de entorno».

En la sección «Variables del sistema», seleccione la variable «Ruta» y haga clic en «Editar».

Añada la ruta al directorio de instalación de PHP (p. ej., C:\PHP) si aún no está presente.

Haga clic en «Aceptar» para guardar los cambios.

Establecer la variable de entorno PATH (macOS/Linux):

Abre una terminal y abre o crea el archivo.bash_profile en tu directorio principal.

Añada la siguiente línea y sustituya /path/to/php por la ruta actual a su

Instalación de PHP:

export PATH=$PATH:/path/to/php

Guarda el archivo y reinicia el terminal para que los cambios surtan efecto.

Después de seguir estos pasos, deberías tener PHP instalado y listo para usarse en tu sistema.

Pasos de integración

Este proceso implica los siguientes tres pasos importantes:

  1. Detalles de Message Central
  2. Agregar detalles de Message Central en el código
  3. Enviar una opción 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.

b. Agregar detalles de MessageCentral 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»:

$customerID = "C-45539F39A4****";
$email = "abhishek******k68@gmail.com";
$password = "********";
$baseURL = "https://cpaas.messagecentral.com";
$authToken = null;
$verificationId = null;
$verificationStatus = null;

Ahora, debe crear un archivo PHP llamado Program.php y agregar el código PHP proporcionado a este archivo.

<?php

require __DIR__ . '/vendor/autoload.php';

use Http\Discovery\HttpClientDiscovery;
use Http\Discovery\Psr17FactoryDiscovery;
use Http\Discovery\Psr18ClientDiscovery;
use Psr\Http\Client\ClientExceptionInterface;
use Psr\Http\Client\ClientInterface;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\UriFactoryInterface;

$customerID = "C-45539F39A44****";
$email = "abhishek*****k68@gmail.com";
$password = "*****";
$baseURL = "https://cpaas.messagecentral.com";
$authToken = null;
$verificationId = null;
$verificationStatus = null;

function parseJSON($jsonString, $key)
{
    $jsonObject = json_decode($jsonString, true);
    return $jsonObject[$key] ?? null;
}

function generateAuthToken($httpClient, $requestFactory)
{
    global $password, $baseURL, $customerID, $email, $authToken;

    $base64String = base64_encode($password);
    $url = "{$baseURL}/auth/v1/authentication/token?country=IN&customerId={$customerID}&email={$email}&key={$base64String}&scope=NEW";
    $request = $requestFactory->createRequest('GET', $url);

    try {
        $response = $httpClient->sendRequest($request);
        $responseString = $response->getBody()->getContents();
        $authToken = parseJSON($responseString, "token");
        return $authToken;
    } catch (ClientExceptionInterface $e) {
        echo "Error generating auth token. Response code: {$e->getCode()}\n";
        return null;
    }
}

function sendOtp($httpClient, $requestFactory, $authToken, $countryCode, $mobileNumber)
{
    global $baseURL, $customerID, $verificationId;

    $url = "{$baseURL}/verification/v3/send?countryCode={$countryCode}&customerId={$customerID}&flowType=SMS&mobileNumber={$mobileNumber}";
    $request = $requestFactory->createRequest('POST', $url, ['authToken' => $authToken]);

    try {
        $response = $httpClient->sendRequest($request);
        $responseString = $response->getBody()->getContents();
        $verificationId = parseJSON(parseJSON($responseString, "data"), "verificationId");
        return $verificationId;
    } catch (ClientExceptionInterface $e) {
        echo "Error sending OTP. Response code: {$e->getCode()}\n";
        return null;
    }
}

function validateOtp($httpClient, $requestFactory, $authToken, $otpCode, $countryCode, $mobileNumber)
{
    global $baseURL, $customerID, $verificationId, $verificationStatus;

    $url = "{$baseURL}/verification/v3/validateOtp?countryCode={$countryCode}&mobileNumber={$mobileNumber}&verificationId={$verificationId}&customerId={$customerID}&code={$otpCode}";
    $request = $requestFactory->createRequest('GET', $url, ['authToken' => $authToken]);

    try {
        $response = $httpClient->sendRequest($request);
        $responseString = $response->getBody()->getContents();
        $verificationStatus = parseJSON($responseString, "verificationStatus");
        return $verificationStatus;
    } catch (ClientExceptionInterface $e) {
        echo "Error validating OTP. Response code: {$e->getCode()}\n";
        return null;
    }
}

$httpClient = Psr18ClientDiscovery::find();
$requestFactory = Psr17FactoryDiscovery::findRequestFactory();

$server = new \React\Http\Server(function (\Psr\Http\Message\ServerRequestInterface $request) use ($httpClient, $requestFactory) {
    global $customerID, $email, $password, $baseURL, $authToken, $verificationId, $verificationStatus;

    $path = $request->getUri()->getPath();
    $method = $request->getMethod();
    $query = $request->getQueryParams();
    $body = json_decode($request->getBody()->getContents(), true);

    if ($method === "POST" && $path === "/sendotp" && isset($body["countryCode"]) && isset($body["mobileNumber"])) {
        $countryCode = $body["countryCode"];
        $mobileNumber = $body["mobileNumber"];

        generateAuthToken($httpClient, $requestFactory);
        $verificationId = sendOtp($httpClient, $requestFactory, $authToken, $countryCode, $mobileNumber);

        return new \React\Http\Message\Response(
            200,
            ['Content-Type' => 'application/json'],
            json_encode(["message" => $verificationId ? "Otp sent! Successfully" : "Bad Request"])
        );
    } elseif ($method === "GET" && $path === "/validateotp" && isset($query["countryCode"]) && isset($query["mobileNumber"]) && isset($query["otpCode"])) {
        $countryCode = $query["countryCode"];
        $mobileNumber = $query["mobileNumber"];
        $otpCode = $query["otpCode"];

        generateAuthToken($httpClient, $requestFactory);
        $verificationStatus = validateOtp($httpClient, $requestFactory, $authToken, $otpCode, $countryCode, $mobileNumber);

        return new \React\Http\Message\Response(
            200,
            ['Content-Type' => 'application/json'],
            json_encode(["message" => $verificationStatus === "VERIFICATION_COMPLETED" ? "Otp verification Done!" : "Bad Request"])
        );
    } else {
        return new \React\Http\Message\Response(
            404,
            ['Content-Type' => 'text/plain'],
            "Not Found"
        );
    }
});

$socket = new \React\Socket\Server('127.0.0.1:3000');
$server->listen($socket);

echo "Server running at http://localhost:3000/\n";

$loop = \React\EventLoop\Factory::create();
$loop->run();

c. Enviar un SMS de prueba de Otp 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:

1. Para ejecutar código PHP, no es necesario compilarlo. PHP es un lenguaje interpretado, por lo que puede ejecutar scripts PHP directamente.

Así es como puedes ejecutar un script PHP:

Guarda el código PHP en un archivo con la extensión.php, por ejemplo, my_script.php.

Abre una terminal o una línea de comandos.

Navega hasta el directorio en el que se encuentra tu archivo PHP.

Ejecute el script de PHP con el intérprete de PHP. Por ejemplo, para ejecutar my_script.php, utilizaría el siguiente comando:

php my_script.php

2. 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.

Ejemplo, para un número de teléfono indio URL: http://localhost:3000/sendotp/91/123****123

  1. Imagen 1: Sending Otp
Image 1 : Sending Otp

3. 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
Image 2: Verifying Otp

Share this article
verification code

Boost your sales and customer engagement with Message Central now!

Message Central Logo Blue
Close Icon
Equipo central de mensajes
¡Hola!
¿Cómo podemos ayudarlo hoy?
WhatsApp Icon
Iniciar el chat de Whatsapp
Chat de WhatsApp
WhatsApp Icon