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')

ENDIF

 

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()

LPARAMETERS pcUsuario, pcPassw

 

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.