
Uso de la
plataforma Flash SMS para desarrolladores
Código de ejemplo en Microsoft Visual FoxPro usando el ActiveX MSXML que se encuentra en todas las máquinas Windows. Se realiza por http a través del puerto 80 con lo que no hay problemas con los FireWalls ni con puertos cerrados. Se usa Flash SMS como gateway. Puedes solicitar 5 créditos gratuitos para probarlo al
LOCAL
lcTelef, lcRemite, lcMsg, lcUsuario, lcPassw
lcUsuario = "PEPE"
lcPassw = "2345"
lcRemite = "34630480522"
lcTelef = "34675830221"
lcMsg = "Envio desde Flash SMS"
IF
.t.
LOCAL lcRespuesta
*- Consulta el
crédito
lcRespuesta = gfCreditosSms(lcUsuario,
lcPassw)
*- Muestra la
respuesta
MESSAGEBOX(lcRespuesta, 64, 'Atención')
ELSE
LOCAL lcRespuesta
*- Envía SMS
lcRespuesta = gfEnviaSms(lcTelef, lcRemite,
lcMsg, lcUsuario, lcPassw)
*- Muestra la
respuesta
MESSAGEBOX(lcRespuesta, 64, 'Atención')
ENDIF
RETURN
*--------------------------------------------------------------------------
* Función: gfEnviaSms Envía
un mensaje de texto a la plataforma de
* envíos
de SMS de FLASH
* PARAMETROS:
* pcTo Teléfono del destinatario
* pcFrom Remitente que aparecerá al recibir el SMS
* pcMsg Mensaje
* pcUsuario Nombre del usuario de FLASH
* pcPassw Password del usuario de FLASH
*
*--------------------------------------------------------------------------
FUNCTION gfEnviaSms()
LPARAMETERS pcTo, pcFrom, pcMsg, pcUsuario, pcPassw
LOCAL objXSH
LOCAL strPostText As String, ;
sResponseText
As String
*- Compone mensaje
strPostText
="&Usuario="+ pcUsuario + ;
"&clave=" + pcPassw + ;
"&to=" + pcTo + ;
"&message="+ pcMsg + ;
"&from=" + pcFrom + ;
"&automatico=true"
sResponseText = ""
LOCAL loErrorTry
loErrorTry = .NULL.
TRY
IF NOT
CreaObjXMLHTTP(@objXSH)
ERROR
'No se ha podido crear referencia al objeto de envío de e-mail'
ENDIF
objXSH.open("POST",
"http://www.flasof.com/paginas/sms/send.php", .F.)
objXSH.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded")
*- Envía el mensaje
objXSH.send(strPostText)
IF objXSH.Status = 200
*-
La respuesta se debe usar para filtrar el resultado devuelto por la pasarela
sResponseText = objXSH.responseText
ELSE
sResponseText
= "Error: (" + objXSH.Status + ") " + objXSH.statusText
ENDIF
CATCH TO loErrorTry
FINALLY
ENDTRY
*- Libera el objeto
objXSH
= NULL
*- Si hubo error
IF VARTYPE(loErrorTry) = 'O'
MESSAGEBOX('Mensaje
de error: ' + loErrorTry.Message, 16, 'Atención')
RETURN (sResponseText)
*--------------------------------------------------------------------------
* Función: gfCreditosSms Consulta
el crédito disponible de una cuenta
* SMS
en FLASH
* PARAMETROS:
* pcUsuario Nombre del usuario de FLASH
* pcPassw Password del usuario de FLASH
*
*--------------------------------------------------------------------------
FUNCTION gfCreditosSms()
LOCAL objXSH
LOCAL strPostText As String, ;
sResponseText
As String
*- Compone mensaje
strPostText
="&Usuario="+ pcUsuario + ;
"&Clave=" + pcPassw + ;
"&automatico=true"
sResponseText = ""
LOCAL loErrorTry
loErrorTry = .NULL.
TRY
IF NOT
CreaObjXMLHTTP(@objXSH)
ERROR
'No se ha podido crear referencia al objeto de envío de SMS'
ENDIF
objXSH.open("POST",
"http://www.flasof.com/paginas/sms/balance.php", .F.)
objXSH.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded")
*- Envía el mensaje
objXSH.send(strPostText)
IF objXSH.Status = 200
*- La respuesta se debe usar para filtrar el resultado devuelto
por la pasarela
sResponseText = objXSH.responseText
ELSE
sResponseText
= "Error: (" + objXSH.Status + ") " + objXSH.statusText
ENDIF
CATCH TO loErrorTry
FINALLY
ENDTRY
*- Libera el objeto
objXSH
= NULL
*- Si hubo error
IF VARTYPE(loErrorTry) = 'O'
MESSAGEBOX('Mensaje
de error: ' + loErrorTry.Message, 16, 'Atención')
ENDIF
RETURN (sResponseText)
*--------------------------------------------------------------------------
*- Crea referencia al objeto de la versión mas reciente que esté
instalada
*--------------------------------------------------------------------------
FUNCTION CreaObjXMLHTTP
LPARAMETERS objXSH, pcTipoHttp
LOCAL ARRAY laObjs(5)
laObjs(1) = 'Msxml2.ServerXMLHTTP.6.0'
laObjs(2) = 'Msxml2.ServerXMLHTTP.5.0'
laObjs(3) = 'Msxml2.ServerXMLHTTP.4.0'
laObjs(4) = 'Msxml2.ServerXMLHTTP.3.0'
laObjs(5) = 'Msxml2.ServerXMLHTTP'
objXSH = .NULL.
FOR EACH lcObj IN laObjs
*- Si pasa valor a buscar, comprueba si está en el buscado
IF NOT EMPTY(pcTipoHttp)
IF
UPPER(pcTipoHttp) <> UPPER(lcObj)
LOOP
ENDIF
ENDIF
*- Prueba a
crear el objeto, si falla sigue con el siguiente
LOCAL loErrorTry
loErrorTry =
.NULL.
TRY
objXSH
= CREATEOBJECT(lcObj)
CATCH TO
loErrorTry
FINALLY
ENDTRY
*- Si hubo error
IF VARTYPE(loErrorTry) = 'O'
objXSH
= .NULL.
ELSE
*- Si ha creado el objeto, sale
EXIT
ENDIF
ENDFOR
RETURN ( NOT ISNULL(objXSH) )
Copyright © 1998-2006 Flash Software, S.L. All rights reserved.