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
Comment this post