Interfaz SMS de registro personal
//Funciona bien con php5.3 y php5.6.
Espacio de nombres Moduyun \ Sms
require _ once(' smssenderutil . PHP ');
Clase SmsSingleSender {
var $ url
var $clave de acceso
var $clavesecreta
var $util
función __construct($clavedeacceso, $clavesecreta) {
$this->URL = "/SMS/v 1/sendsinglesms"
$this->accesskey=? $ clave de acceso
$ this->secretkey = $secretkey
$ this->util = new SmsSenderUtil();
}
/**
*Se emiten órdenes ordinarias, con claridad en el contenido. Si hay varias firmas, agréguelas al contenido de información del formulario; de lo contrario, se utilizará la firma predeterminada.
* @param int $type Tipo de SMS, 0 es SMS normal, 1 es SMS de marketing.
* @param string $nationCode código de país, por ejemplo, 86 es China.
* @param string $phoneNumber número de teléfono móvil sin código de país
* @param string $msg El contenido de la información debe ser coherente con el formato de plantilla de la aplicación; de lo contrario, se producirá un error. regresó.
* @param string $extend código de expansión, puedes completar los espacios en blanco.
* @param string $ext Parámetros devueltos por el servidor tal como están, puede completar los espacios en blanco.
* @ cadena de retorno Cadena JSON { " resultado ":xxxxx, " errmsg": "xxxxx "...}, consulte el documento del protocolo para conocer el contenido omitido.
*/
Función enviar($tipo, $nationCode, $phoneNumber, $msg, $extend = " ", $ text = " " {
/*
Cuerpo del paquete de solicitud
{
"Teléfono":{
"Código de país":"86", p>
[Teléfono móvil]: "1378888888"
},
[Tipo]: 0,
"msg":"Tu verificación El el código es 1234",
" SIG ":" fdba 654 e 05 BC 0d 15796713a 1a 1a 2318c ",
[Tiempo]:1479888540,
" extension ": "",
" text ":" "
}
La respuesta contiene
{
[Resultado]: 0,
" errmsg": "OK",
" text ":" ",
" sid": "xxxxxxx " ,
[Costo]:1
}
*/
$ aleatorio = $ this-& gt; util-& gt ;get random();
$ curTime = time();
$ URL completa = $ this-& gt; Clave de acceso "& amprandom= ". $ random
//Organiza el cuerpo del paquete de publicaciones según el protocolo
$ data = new \ stdClass()
$tel = new \stdClass; ();
$tel->;CountryCode="".$nationCode
$tel->Mobilephone="".
$ número de teléfonos móviles;
$ datos->tel = $ tel
$ datos->tipo =(int)$ tipo;
$datos ->msg = $msg
$data->sig = hash("sha256",
" secretkey= "$this->Clave secreta ."&random=" .$curTime="$phoneNumber,FALSE);
$data->
$ data-& gt;extend = $ extender
$ data- & gt;ext = $ text
return $ this-& gt;util- & gt; sendCurlPost($wholeUrl, $data);
}
/**
*Especifique la hoja de plantilla.
* @param string $nationCode código de país, por ejemplo, 86 es China.
* @param string $phoneNumber número de teléfono móvil sin código de país
* @param int $templId ID de plantilla
* @param array $params lista de parámetros de plantilla , como la plantilla {1}....{2}....{3}, entonces necesita tomar tres parámetros.
* @param cadena $firma firma. Si se completa la cadena, el sistema utilizará la firma predeterminada.
* @param string $extend código de expansión, puedes completar los espacios en blanco.
* @param string $ext Parámetros devueltos por el servidor tal como están, puede completar los espacios en blanco.
* @ cadena de retorno cadena JSON { "resultado":xxxxx,"errmsg":"xxxxxx"? ...}, consulte el documento del protocolo para ver el contenido omitido.
*/
Función sendWithParam($nationCode, $phoneNumber, $templId = 0, $params, $sign = " ", $extend = " ", $ext = " " {
/*
Cuerpo del paquete de solicitud
{
"Teléfono":{
"Código de país ": "86",
[Teléfono móvil]: "1378888888"
},
"Firmar": "Modu Cloud",
[TPL_id]:19,
" params": [
"Código de verificación",
"1234",
"4"
],
" SIG ":" fdba 654 e 05 BC 0d 15796713a 1a 1a 2318c ",
[Tiempo] :1479888540,
"Extensión": "",
" text ":" "
}
La respuesta contiene
{
[Resultado]:0,
" errmsg": "OK",
" text":" ",
" sid": "xxxxxxx ",
[Costo]:1
}
*/
$ aleatorio = $this ->util->obtener aleatorio();
$curTime = time();
$URL completa = $this->URL "?sdkaccesskey= ". $ this-& gt; Clave de acceso. "&random= ". $ random
//Organiza el cuerpo del paquete de publicaciones según el protocolo
$ data = new. );
$tel = new \stdClass();
$tel->;countryCode = " ".
$tel -> móvil = " " .
$ número de teléfonos;
$ datos->tel = $ tel
$ datos->SIG = $this->util->calculateSigForTempl( $this-> clave secreta,$aleatorio,$curTime,$teléfono$número);
$data->tpl_id = $templId
$data-> p>
$ datos-& gt; signo = $ signo
$ datos-& gt; tiempo = $ curTime
$ datos- >extender = $extender p>
$data->ext = $ext
return $this->util->sendCurlPost($wholeUrl, $data );
} p>
}
Clase SmsMultiSender {
var $ url
var $ clave de acceso p>
var $secretkey
var $util
función __construct($accesskey, $secretkey) {
$this->URL = "/SMS/v 1/sendsinglesms "
$ esto->clave de acceso=? $ clave de acceso
$ this->secretkey = $secretkey
$ this->util = new SmsSenderUtil();
}
/**
*Envío masivo ordinario, especificar claramente el contenido. Si hay varias firmas, agréguelas al contenido de información del formulario; de lo contrario, se utilizará la firma predeterminada.
*Tenga en cuenta que los mensajes de texto extranjeros no tienen una función de envío grupal.
* @param int $type Tipo de SMS, 0 es SMS normal, 1 es SMS de marketing.
* @param string $nationCode código de país, por ejemplo, 86 es China.
* @param string $phoneNumbers lista de números de teléfonos móviles sin código de país
* @param string $msg El contenido de la información debe ser coherente con el formato de plantilla de la aplicación; de lo contrario, se producirá un error. regresó.
* @param string $extend código de expansión, puedes completar los espacios en blanco.
* @param string $ext Parámetros devueltos por el servidor tal como están, puede completar los espacios en blanco.
* @ cadena de retorno Cadena JSON { " resultado ":xxxxx, " errmsg": "xxxxx "...}, consulte el documento del protocolo para conocer el contenido omitido.
*/
Función enviar($tipo, $nationCode, $phoneNumbers, $msg, $extend = " ", $ext = " ").
/*
Cuerpo del paquete de solicitud
{
"Teléfono":[
{ p >
"Código de país": "86",
[Teléfono móvil]: "1378888888"
},
{
"Código de país": "86",
[Teléfono móvil]: "13788888889"
}
],
[ Tipo]: 0,
"msg": "Tu código de verificación es 1234",
" SIG ": " fdba 654 e 05 BC 0d 15796713a 1a 1a 2318c ",
[Tiempo]:1479888540,
"Extensión": "",
" text ":" "
}
La respuesta contiene
{
[Resultado]: 0,
" errmsg": "OK ",
" text ":" ",
"Detalles":[
{
[Resultado]:0,
" errmsg" : "OK",
[Teléfono móvil]: "1378888888",
"Código de país": "86",
" sid": "xxxxxxx " ,
[Costo]: 1
},
{
[Resultado]: 0,
" errmsg": "OK",
[Teléfono móvil]: "13788888889",
"Código de país": "86",
" sid ": "xxxxxxx ",
[Costo]:1
}
]
}
* /
$ aleatorio = $ this->util->get random();
$ curTime = time();
$ URL completa = $this->URL. "?clave de acceso= ". $this->Clave de acceso. "&random= ". $random
$data = new \stdClass();
$data->phone = $this->util->phoneNumbersToArray($código de nación, $ números de teléfono );
$ datos-& gt; tipo = $ tipo
$ datos-& gt; $this->util->calculateSig($this->secretkey, $random, $curTime, $números de teléfono);
$data->time = $ curTime
$ datos-& gt; extender = $ extender
$ datos-& gt; text = $ text
return $ this-& gt ;util-& gt;sendCurlPost( $wholeUrl,$data);
}
/**
*Especifique el grupo de plantillas a enviar.
*Ten en cuenta que los mensajes de texto extranjeros no tienen una función de envío grupal.
* @param string $nationCode código de país, por ejemplo, 86 es China.
* @param array $phoneNumbers lista de números de teléfonos móviles sin código de país
* @param int $templId ID de plantilla
* @param array $params template Lista de parámetros, como la plantilla {1}...{2}...{3}, entonces debe traer tres parámetros.
* @param cadena $firma firma. Si se completa la cadena, el sistema utilizará la firma predeterminada.
* @param string $extend código de expansión, puedes completar los espacios en blanco.
* @param string $ext Parámetros devueltos por el servidor tal como están, puede completar los espacios en blanco.
* @ cadena de retorno Cadena JSON { " resultado ":xxxxx, " errmsg": "xxxxx "...}, consulte el documento del protocolo para conocer el contenido omitido.
*/
Función sendWithParam($nationCode, $phoneNumbers, $templId, $params, $sign = " ", $extend = " ", $ text = " " {
/*
Cuerpo del paquete de solicitud
{
"Teléfono":[
{
"Código de país": "86",
[Teléfono móvil]: "1378888888"
},
{
"Código de país": "86",
[Teléfono móvil]: "13788888889"
}
],
" Firmar ":"Modu Cloud",
[TPL_id]:19,
" params": [
"Código de verificación",
"1234",
"4"
],
" SIG ":" fdba 654 e 05 BC 0d 15796713a 1a 1a 2318c " ,
[Tiempo]:1479888540,
"Extensión": "",
" text ":" "
}< /p >
La respuesta contiene
{
[Resultado]: 0,
" errmsg": "OK",
" text ":" ",
"Detalles":[
{
[Resultado]:0,
" errmsg" : "OK ",
[Teléfono móvil]: "1378888888",
"Código de país": "86",
" sid": " xxxxxxx ",
[Costo]:1
},
{
[Resultado]:0,
" errmsg": "OK ",
[Teléfono móvil]: "13788888889",
"Código de país": "86",
" sid ": "xxxxxxx ",
[Costo]:1
}
]
}
* /
$ aleatorio = $ this-& gt; util-& gt; get random();
$ curTime = time(); URL = $this->URL. "?clave de acceso= ". $this->Clave de acceso. "&random= ". $random
$data = new \stdClass();
$data->phone = $this->util->phoneNumbersToArray($código de nación, $ números de teléfono );
$ datos->signo = $ signo
$ datos->tpl_id = $templId
$ datos ->params = $params
$data->SIG = $this->util->calculateSigForTemplAndPhoneNumbers(
$this->secretkey , $random, $curTime, $números de teléfono);
$ datos->time = $curTime
$data->extend = $extend
$data->ext = $ext p>
return $this->util->sendCurlPost($wholeUrl, $data);
}
}
Para más información , preste atención al servicio en la nube: Modu Cloud Platform.
Sitio web oficial:/