Dependiendo de SMS ha sido poco a poco se desvanecen las herramientas de comunicación habituales Cola, pero siempre borrar su código de verificación de la existencia, SMS no dependiendo ser reemplazados, además de información importante sobre el estado de la notificación no es deseable de. Así entiende el uso de SMS es necesario en el desarrollo de un anillo.
servicio en la nube de SMS Tencent se proporciona de forma gratuita en el 100, es conveniente para el desarrollo y pruebas.
servicio de mensajería de texto y establece una plantilla
https://console.cloud.tencent.com/sms
Ver SDK
https://cloud.tencent.com/document/product/382/13410
Proporciona SDK en varios idiomas
PHP Plantillas SMS aerodinámica
Enviar a alcanzar una plantilla de mensaje único
1 / * * 2 * @param string $ nationCode código del país, tales como el chino 86 3 * @param string $ phoneNumber sin un número de teléfono código de país de 4 * @ param int $ templid plantilla por encima de la Identificación del mencionado 5 * @param array $ params parámetros de plantilla lista, como plantilla ... {1} {2} {3} ..., es necesario tomar tres argumentos . 6 * @param string $ firma muestra, si el relleno de la cadena en blanco, el sistema usará la firma por defecto . 7 * @param string $ extender el código de ensanchamiento, se puede llenar en la cadena en blanco 8 parámetros @param string $ ext devuelto desde el servidor como *, puede llenar en la cadena en blanco . 9 * cadena JSON respuesta cadena @return, véase el documento protocolo detallado Tencent nube 10 * / . 11 función sendWithParam ( $ nationCode , $ phoneNumber , $ templid = 0, $ params, Signo $ = "", $ Extend = "", $ EXT = "" ) { 12 es 13 es $ AppID = 1400xxx; // propio mensaje APPID 14 $ AppKey = "d80axxxxx"; // propio mensaje AppKey 15 16 $ al azar = RAND (100000, 999999); // generar números aleatorios 17 $ CURTIME = Time (); 18 $ wholeUrl = "https://yun.tim.qq.com/v5/tlssmssvr/sendsms" "sdkappid =.? . " $ AppID ." & Random = ". $ aleatoria ; 19 20 //tejido del cuerpo posterior de acuerdo al paquete de protocolo 21 es $ datos = new new \ la stdClass (); // Crear un miembro de métodos y propiedades no se vacía objeto 22 es $ Tel = new new \ la stdClass (); 23 es $ Tel . -> nationcode = "" $ nationCode ; 24 $ Tel -> móvil = "" $ phoneNumber ; 25 $ de datos -> Tel = $ Tel ; 26 es $ datos -> SIG = hash ( "SHA256", "AppKey =" $ AppKey . "y Random =" Random $ .. "Tiempo = &" $ CURTIME "móvil y =.". $ phoneNumber );// generar la firma 27 $ los Datos-> tpl_id = $ templId ; 28 $ data -> params = $ params ; 29 $ data -> signo = $ signo ; 30 $ data -> tiempo = $ CURTIME ; 31 $ de datos -> extender = $ extender ; 32 $ data -> ext = $ ext ; 33 34 retorno sendCurlPost ( $ wholeUrl , $ data ); 35 } 36 / * * 37 *发送请求 38 * 39 * Cadena @Param $ url petición de dirección 40 * Matriz @param $ dataobj solicitud de contenido 41 es * La respuesta de Cadena @return cadena JSON 42 es * / 43 es función sendCurlPost ( $ url , $ dataobj ) { 44 es $ rizo = curl_init (); 45 curl_setopt ( $ enrollamiento , CURLOPT_URL a, $ URL ); 46 es curl_setopt ( $ enrollamiento , CURLOPT_HEADER, 0 ); 47 curl_setopt ( $ enrollamiento , CURLOPT_RETURNTRANSFER ,. 1 ); 48 curl_setopt ( $ enrollamiento , CURLOPT_POST ,. 1); 49 curl_setopt ( $ rizo , CURLOPT_CONNECTTIMEOUT, 60 ); 50 curl_setopt ( $ rizo , CURLOPT_POSTFIELDS, json_encode ( $ dataobj )); 51 curl_setopt ( $ enrollamiento , opción CURLOPT_SSL_VERIFYHOST, 0 ); 52 curl_setopt ( $ rizo , CURLOPT_SSL_VERIFYPEER, 0 ); 53 $ ret = curl_exec ( $ rizo ); 54 si ( falsa == $ ret ) { 55 // curl_exec falló 56 $ resultado= "{\" Número \ ":". -2. "\ "errmsg \": \ "" curl_error ( $ rizo .) "\"}" ; 57 } más { 58 $ RSP = curl_getinfo ( $ enrollamiento , CURLINFO_HTTP_CODE); 59 si (! = 200 $ RSP ) { 60 $ resultado = "{\" número \ ":". -1. "\ "errmsg \": \ "". $ RSP 61 "" curl_error (. $ rizo \ "}")." ; 62 } demás { 63 $ resultado = $ derecha ; 64 } 65 } 66 curl_close ( $ rizo ); 67 68 de retorno $ resultado ; 69 }
Código de ensayo:
. 1 función XX () { 2 $ templid = 286xxx; // propia plantilla de ID de mensaje . 3 $ phoneNumber1 = "159xxxxx"; // Aceptar número de teléfono móvil SMS . 4 el try { . 5 // datos de la plantilla de marcador de posición . 6 $ params = array ( "Datos 1 "" 2 "de datos ); . 7 $ Resultado = sendWithParam (" 86 " $ phoneNumber1 , $ templid , $ el params ," "" "" " ); . 8 eco $ result ;// resultados exitosos de salida JSON 9 } la captura (\ Excepción E $ ) { 10 eco var_dump ( $ E ); // salida de información de anomalía 11 } 12 }