Tutorial: Enviar múltiples SMS con la macro sc_send_sms

En este ejemplo estaremos viendo cómo podemos crear una aplicación que nos ayude  a enviar múltiples mensajes a través de la macro sc_send_sms.

Creando una aplicación de Control

1 – Creamos una aplicación del tipo Control.

2 – Una vez creada la aplicación debemos crear 10 campos con los siguientes tipos de datos:

3 – Luego configuramos los siguientes campos de esta manera:

  • sms_group
  • sms_gateway
  • sms_date_time
  • sms_binary
  • sms_send_type

Es decir, ingresamos en las configuraciones de esos campos, donde seleccionamos el tipo de campo que deseamos en base a la imagen anterior.

4 – Luego de haber configurado los campos, procedemos a crear los siguientes métodos:

5 – Dentro del método m_sms_clickatell colocamos lo siguiente:


$var_config    = array(
    'message' => [
        'to' => {loc_numbers},
        'from' => {loc_from_number},
        'binary' => ({sms_binary}==1 ? true : false),
        //clientMessageId' => ''
        'scheduledDeliveryTime' => {sms_date_time}, // yyyy-MM-ddTHH:mm:ss-0300 -- 2018-01-01T10:01:10+0300
        'validityPeriod' => {sms_periody}, //day
        'charset' => {sms_charset}, //ASCII, UCS2-BE, UTF-8, Windows-1252
        'message' => {loc_message},
    ],
    'settings' => [
        'gateway' => $p_gateway,
        'auth_token' => {loc_token},
        ]
);

if(empty({sms_date_time}) || {sm_date_time}==""){
    unset($var_config['message']['scheduledDeliveryTime']);
}

$return = sc_send_sms($var_config);

$msg_body = '<table class="table table-bordered table-striped">
    <tr>
        <td>MessageID</td>
        <td>Acepted</td>
        <td>TO</td>
        <td>ErrorCode</td>
        <td>Error</td>
        <td>Error Message</td>
    </tr>';

    foreach($return as $key => $values){
        $values['accepted'] = ($values['accepted'] == 1 ? 'Success' : $values['accepted']);
        $msg_body .= "<tr>
            <td>".$values['apiMessageId']."</td>
            <td>".$values['accepted']."</td>
            <td>".substr($values['to'],0,-3).'xxx'."</td>
            <td>".$values['errorCode']."</td>
            <td>".$values['error']."</td>
            <td>".$values['errorDescription']."</td>
            </tr>";
    }
    $msg_body .='</table>';

return $msg_body;

6 – En el método m_sms_plivo:


$var_config    = array(
    'message' => [
        'to' => $loc_numbers,
        'from' => $loc_from_number,
        'message' => $loc_message,
        'ValidityPeriod' => {sms_periody}, //seconds
        'ProvideFeedback' => false, //feedback message API - true
        
    ],
    'settings' => [
        'gateway' => $p_gateway,
        'auth_id' => $loc_sid,
        'auth_token' => $loc_token,
        ]
);

/*
if(empty({sms_date_time}) || {sm_date_time}==""){
    unset($var_config['message']['scheduledDeliveryTime']);
}
*/

$return = sc_send_sms($var_config);

$msg_body = '<table class="table table-bordered table-striped">
    <tr>
        <td>Message Response</td>
    </tr>';
$msg_body .= "
    <tr>
        <td>".$return."</td>
    </tr>";
$msg_body .='</table>';

return $msg_body;

7 – En el método m_sms_twilio:


$var_config    = array(
    'message' => [
        'to' => $loc_numbers,
        'from' => $loc_from_number,
        //"mediaUrl" => "https://www.scriptcase.com.br/docs/pt_br/v9/assets/images/scriptcase-logo.svg",
        'message' => $loc_message,
        'ValidityPeriod' => {sms_periody}, //seconds
        'ProvideFeedback' => false, //feedback message API - true
        //'MessagingServiceSid' => '' //34 char unique from twilio service
        'StatusCallback' => 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER["PHP_SELF"],
        //"MessagingServiceSid" => "",
        
    ],
    'settings' => [
        'gateway' => $p_gateway,
        'auth_id' => $loc_sid,
        'auth_token' => $loc_token,
        ]
);

/*
if(empty({sms_date_time}) || {sm_date_time}==""){
    unset($var_config['message']['scheduledDeliveryTime']);
}
*/

$return = sc_send_sms($var_config);

$msg_body = '<table class="table table-bordered table-striped">
    <tr>
        <td>Message Response</td>
    </tr>';
$msg_body .= "
    <tr>
        <td>".$return."</td>
    </tr>";
$msg_body .='</table>';

return $msg_body;

8 – Luego de haber creado esos métodos, procedemos a incluir una librería que nos ayudará a complementar lo necesario para la aplicación:

9 – Luego dentro del evento onScriptInit llamamos a la librería de la siguiente manera:

10 – Luego dentro del evento onLoad:


?>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css">
<script>
    $(document).ready(function(){
        $("#id_sc_field_sms_date_time").attr("placeholder", "dd/mm/aaaa hh:mm:ss");
        $("#id_sc_field_sms_date_time").val("");
        $("#sub_form_t").css("background-color","green");
        $("#sub_form_t").css("color","white");
    });
</script>
<?php

if({sms_send_type}==1){
    sc_field_disabled("sms_unique_to");
    sc_field_disabled("sms_group=false");
}else{
    sc_field_disabled("sms_unique_to=false");
    sc_field_disabled("sms_group");
}

11 – Dentro del onValidateSuccess:


//$sql  = "SELECT token,from_number,gateway FROM sms_info WHERE id = ". {sms_gateway};
//sc_lookup(ds,$sql);

$loc_gateway         = {sms_gateway};
$loc_message         = {sms_message};
$loc_numbers         = array();
if({sms_send_type}==1){
    $sql = "SELECT phone, contactname FROM customers WHERE regionid = ". {sms_group};
    sc_lookup(ds,$sql);
    foreach({ds} as $values){
        $loc_numbers[] = $values[0];
    }
}else{
    $loc_numbers = {sms_unique_to};
}

if( $loc_gateway == "clickatell" ){
    $loc_token         = "J3OMe9DJTP6pR_0PTSVamA==";
    $loc_from_number     = "+16165120069";
    {sms_msg_return} = m_sms_clickatell($loc_gateway,$loc_token,$loc_from_number,$loc_message,$loc_numbers);
}
elseif( $loc_gateway == "twilio" ){
    $loc_token         = "6b5c3c3d0beed4d2422737a20dca3763";
    $loc_from_number     = "+16165120069";
    $loc_sid = "ACc21dd9d81b91aa2876446f9a1fb00784";
    {sms_msg_return} = m_sms_twilio($loc_gateway, $loc_token, $loc_from_number, $loc_message, $loc_numbers, $loc_sid);
}
elseif( $loc_gateway == "plivo" ){
    $loc_token         = "MGIzNjRmOTE5ZDY5YjNkNGFhOGQ1ODcwYzljMTFl"; // Get your token at your Plivo account
    $loc_from_number     = "+16165120069"; // Register a cellphone number into your Plivo account
    $loc_sid = "MAYZNLZMQZOWNJMZM3ZT"; // Get your Sid at your Plivo account
    {sms_msg_return} = m_sms_plivo($loc_gateway, $loc_token, $loc_from_number, $loc_message, $loc_numbers, $loc_sid);
}



/* return:
Array
(
    [0] => Array
        (
            [apiMessageId] => 38fc56069a24401f8a58439c5317312e
            [accepted] => 1
            [to] => xxxxxx
            [errorCode] =>
            [error] =>
            [errorDescription] =>
        )

    [1] => Array
        (
            [apiMessageId] => 1aee3a58c2ed472fa303d511147f74d3
            [accepted] => 1
            [to] => xxxxxx
            [errorCode] =>
            [error] =>
            [errorDescription] =>
        )

)
*/



12 – Por último creamos un evento AJAX del campo sms_send_type del tipo OnClick:

13 – Agregamos lo siguiente:


if({sms_send_type}==1){
    sc_field_disabled("sms_unique_to");
    sc_field_disabled("sms_group=false");
}else{
    sc_field_disabled("sms_unique_to=false");
    sc_field_disabled("sms_group");
}

14 – Guardar los cambios y ejecutar la aplicación

Tutorials in the same category

Tutorial: Gestión de archivos en la nube

Algunos de los servicios de almacenamiento de datos están listos para leer y almacenar de forma se...

Integración con WhatsApp

Para integrar WhastApp con ScriptCase, estaremos utilizando una API en específico que se llama...

Confirmación por Correo Electrónico

En este tutorial veremos cómo crear un formulario de confirmación de registro para programar curs...

Enviar SMS con la macro sc_send_sms

Creando una aplicación de Control 1 - Creamos una aplicación del tipo Control. 2- Una v...

Comment this post