Autor Tema: (solucionado)Pasar valores de variables de vb6 a php  (Leído 11724 veces)

0 Usuarios y 1 Visitante están viendo este tema.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
(solucionado)Pasar valores de variables de vb6 a php
« en: Abril 17, 2015, 02:07:38 am »
hola a todos les comento estoy tratando de consumir un web service pero devido a mi bajo conocimiento en la materia no se por donde empezar aqui en vb6, ahora pense en utilizar un puente y mandar los datos a un archivo php que ya tengo  y desde ahi consumir el web server ya tengo un poco solucionado  lo que trato de realizar es enviar mis valores de mis variables desde vb6 a un archivo php alojado en un servidor este es mi codigo de vb6 se ejecuta pero pareciera que el archivo php no lo recibiera por que no me muestra el valor de la variable si alguien me pudiera orientar se lo agradeceria enormemente gracias  :(

Código: (VB) [Seleccionar]
Dim La_Variable As String
Variable = txtVar.Text
web1.Navigate "http://www.qcomercio.com/modules/ver.php?La_Variable =" & Variable
« última modificación: Abril 20, 2015, 09:22:49 pm por aedEric »
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #1 en: Abril 17, 2015, 02:15:19 am »
este es mi codigo php


no marca error pero no muestra el valor de la variable utilizo microsoft internet controls
de antemano agradecere todo su apoyo gracias


pd no puedo publicar mi codigo de php me marca error aqui en el foro al intentar guardarlo a que se debe  :-[
« última modificación: Abril 17, 2015, 02:28:50 am por aedEric »
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #2 en: Abril 17, 2015, 03:14:56 am »
 ;D ya lo solucione y me funciona  habia un espacio entre el nombre de mi variable y el signo de igual quedaria asi
Código: (VB) [Seleccionar]
Dim La_Variable As String
Variable = txtVar.Text
web1.Navigate "http://www.qcomercio.com/modules/ver.php?La_Variable=" & Variable

ahora bien tengo dos preguntas es posible mandar codificado los datos get otra pregunta mi anterior archivo php es una prueba, realmento el archivo php que voy a ocupar es este

Código: (PHP) [Seleccionar]
$metodo = "GetBalance";
//GetBalance (Consulta de Saldo)
$string = '<?xml version="1.0" ?>
<Request>
<PosLogin>
<PosName>'.$dist.'</PosName>
   <UserName>'.$user.'</UserName>
   <UserPass>'.md5($pass).'</UserPass>
</PosLogin>
<PosMethod>
   <MethodName>'.$metodo.'</MethodName>       
</PosMethod>
</Request>';

$client = new nusoap_client($url, true);

$param = array( "StringWS" => $string );
$result = $client->call("RequestWS", $param);
if(!is_array($result)) $result=XML_unserialize($result);
$err = $client->getError();

echo "<pre>";
print_r($result);
echo "</pre>";

hay manera de leer el valor de la variable $result despues de enviar los datos desde vb6
Código: (PHP) [Seleccionar]
print_r($result);
de antemano agradecere toda sus opiniones y sugerencias muchas gracias
« última modificación: Abril 17, 2015, 03:24:28 am por aedEric »
No he fracasado. He encontrado 10000 soluciones que no funcionan.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Pasar valores de variables de vb6 a php
« Respuesta #3 en: Abril 17, 2015, 11:20:50 am »
Lamento no poder ayudarte pero este tema me ha interesado mucho, asi que estare atento a el.
Me encuentras en YAcosta.com

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #4 en: Abril 17, 2015, 11:42:24 am »

Estimado aedEric


Comunicarce directamente con webservice del tipo XML, JSON, entre otros es totalmente factible.
Por favor, puedes indicarnos cual es la URL del webservice y como o que parámetros son los que le debes de pasar.


Saludos, desde algún lugar de Lima-Perú
Saludos, desde algún lugar de Lima-Perú

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #5 en: Abril 17, 2015, 12:07:41 pm »
Albertomi buenos dias muchisimas gracias por tomarte el tiempo y la dispocision en este tema bueno la direccion es la siguiente

http://taecel.com/ConexionCorporativa.php?wsdl

datos

Clave de Distribuidor: 12345678
Nombre de Usuario: Tae1234
Contraseña: Tae1234

documentacion

http://taecel.com/wsDocs/

Código: (PHP) [Seleccionar]
<?phpini_set("display_errors",1);/* * Ejemplo de pruebas taecel Datos de acceso de pruebas */require_once('NuSoap.class.php');require_once('ParseXML.5.4.class.php');$url = 'http://taecel.com/ConexionCorporativa.php?wsdl'; $dist='1234567890';$user='Tae123456';$pass='Tae123456';//GetSKU (Productos Disponibles)/*$string = '<?xml version="1.0" ?>

<Request>
<PosLogin>
<PosName>'.$dist.'</PosName>
   <UserName>'.$user.'</UserName>
   <UserPass>'.md5($pass).'</UserPass>
</PosLogin>
<PosMethod>
   <MethodName>GetSKU</MethodName>       
</PosMethod>
</Request>';


//ReservaTopUp (Reserva la venta)
$string='<?xml version="1.0" ?>
<Request>
<PosLogin>
<PosName>'.$dist.'</PosName>
<UserName>'.$user.'</UserName>
<UserPass>'.md5($pass).'</UserPass>
</PosLogin>
<PosMethod>
<MethodName>ReservaTopUp</MethodName>
<Params>
<CountryCode>52</CountryCode>
<PhoneNumber>5555555555</PhoneNumber>
<CardID>1</CardID>
</Params>
</PosMethod>
</Request>';

//VenderTopUp (Realiza la Venta)
$string='<Request>
<PosLogin>
<PosName>'.$dist.'</PosName>
<UserName>'.$user.'</UserName>
<UserPass>'.md5($pass).'</UserPass>
</PosLogin>
<PosMethod>
<MethodName>VenderTopUp</MethodName>
<Params>
<TransRef>1501427604</TransRef>
<Ticket>0</Ticket>
</Params>
</PosMethod>
</Request>';

//CkechStatus (Verificar Status de una Transacción)
$string='<Request>
<PosLogin>
<PosName>'.$dist.'</PosName>
<UserName>'.$user.'</UserName>
<UserPass>'.md5($pass).'</UserPass>
</PosLogin>
<PosMethod>
<MethodName>CheckStatus</MethodName>
<Params>
<TransRef>1501427604</TransRef>
</Params>
</PosMethod>
</Request>';

//GetSumary (Devuelve las ventas del dia INDICADO yyyy-mm-dd)
$string='<Request>
<PosLogin>
<PosName>'.$dist.'</PosName>
<UserName>'.$user.'</UserName>
<UserPass>'.md5($pass).'</UserPass>
</PosLogin>
<PosMethod>
<MethodName>GetSumary</MethodName>
<Params>
<Fecha>2015-01-13</Fecha>
<Ticket>0</Ticket>
</Params>
</PosMethod>
<Options>
<ReturnType>json</ReturnType>
</Options>
</Request>';

*/
$metodo = "GetBalance";
//GetBalance (Consulta de Saldo)
$string = '<?xml version="1.0" ?>
<Request>
<PosLogin>
<PosName>'.$dist.'</PosName>
   <UserName>'.$user.'</UserName>
   <UserPass>'.md5($pass).'</UserPass>
</PosLogin>
<PosMethod>
   <MethodName>'.$metodo.'</MethodName>       
</PosMethod>
</Request>';

$client = new nusoap_client($url, true);

$param = array( "StringWS" => $string );
$result = $client->call("RequestWS", $param);
if(!is_array($result)) $result=XML_unserialize($result);
$err = $client->getError();

echo "<pre>";
print_r($result);
echo "</pre>";


?>

desde php asi lo tengo pero desearia poder realizarlo netamente desde vb6

« última modificación: Abril 21, 2015, 03:30:43 pm por aedEric »
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #6 en: Abril 17, 2015, 12:12:12 pm »
he logrado pasar los valores desde vb6

Código: (VB) [Seleccionar]
Dim La_Variable As String
Variable = txtVar.Text
web1.Navigate "http://www.qcomercio.com/modules/ver.php?La_Variable=" & Variable

y funciona pero dependo de estos archivos php y no se como leer la respuesta del servidor aunque podria modifcar talvez estos archivos crear un doc de texto y tratar de leerlo con lo siguiente pero es muy engorroso.

Código: (VB) [Seleccionar]
Option Explicit
Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

Public Const IF_FROM_CACHE = &H1000000
Public Const IF_MAKE_PERSISTENT = &H2000000
Public Const IF_NO_CACHE_WRITE = &H4000000

Public Const BUFFER_LEN = 256
    Public Function LeeURL(sURL As String) As String
    Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String
    Dim hInternet As Long, hSession As Long, lReturn As Long

   
    hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)
    If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)
    If hInternet Then
    iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
    sData = sBuffer
    Do While lReturn <> 0
    iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
    sData = sData + Mid(sBuffer, 1, lReturn)
    Loop
    End If

    iResult = InternetCloseHandle(hInternet)

    LeeURL = sData

    End Function


ahora como lo hago netamente desde vb6  sera posible  :(, espero sus opiniones sugerencias mil gracias de antemano
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #7 en: Abril 17, 2015, 02:57:15 pm »
 ;) amigo Yacosta se agradece la intencion saludos
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #8 en: Abril 17, 2015, 06:21:10 pm »
 he dado una repasada al ejemplo de el guille

http://www.elguille.info/NET/dotnet/clienteVB6servicioWeb.htm pero no me funciona localmente ni utilizando el ejemplo que tienes en su pagina, alguien de casualidad probo los dos ejemplos que tiene mil gracias saludos
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #9 en: Abril 18, 2015, 06:49:24 pm »
 :) bueno les comento he hecho pruebas y con exito no utilize 100%vb6  para el uso del web service utilize vb6 y php el tiempo de envio y respuesta es bueno utilze apis con codigo expuesto aqui para verificar y leer la respuesta del servidor tal vez es una forma rudimentaria por asi decirlo pero no logre hacerlo totalmente desde vb6

Código: (VB) [Seleccionar]
'by Karcrack
Option Explicit
'WININET
Private Declare Function HttpQueryInfoW Lib "WININET" (ByVal hRequest As Long, ByVal dwInfoLevel As Long, ByRef lpBuffer As Any, ByRef lpdwBufferLength As Long, ByRef lpdwIndex As Long) As Long
Private Declare Function InternetCloseHandle Lib "WININET" (ByVal hInternet As Long) As Boolean
Private Declare Function InternetOpenW Lib "WININET" (ByVal lpszAgent As Long, ByVal dwAccessType As Long, ByVal lpszProxy As Long, ByVal lpszProxyBypass As Long, ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrlW Lib "WININET" (ByVal hInternet As Long, ByVal lpszUrl As Long, ByVal lpszHeaders As Long, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Long
 
Private Const INTERNET_OPEN_TYPE_DIRECT As Long = 1
Private Const INTERNET_FLAG_RELOAD      As Long = &H80000000
Private Const HTTP_QUERY_STATUS_CODE    As Long = 19
Private Const HTTP_QUERY_FLAG_NUMBER    As Long = &H20000000
Private Const HTTP_STATUS_OK            As Long = 200
Private Const HTTP_STATUS_REDIRECT      As Long = 302
Private Const STRING_AGENT              As String = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
 
Public Function CheckWetherExists(ByVal sURL As String) As Boolean
    Dim hInet                           As Long
    Dim hURL                            As Long
    Dim lStatus                         As Long
 
    hInet = InternetOpenW(StrPtr(STRING_AGENT), INTERNET_OPEN_TYPE_DIRECT, 0&, 0&, 0&)
    If hInet = 0 Then GoTo Fail
 
    hURL = InternetOpenUrlW(hInet, StrPtr(sURL), 0&, 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
    If hURL = 0 Then GoTo Fail
 
    If HttpQueryInfoW(hURL, HTTP_QUERY_FLAG_NUMBER Or HTTP_QUERY_STATUS_CODE, lStatus, &H4, ByVal 0&) Then
        CheckWetherExists = (lStatus = HTTP_STATUS_OK) Or (lStatus = HTTP_STATUS_REDIRECT)
    End If
 
Fail:
    Call InternetCloseHandle(hInet)
    Call InternetCloseHandle(hURL)
End Function


Código: (VB) [Seleccionar]
Const scUserAgent = "API-Guide test program"
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
'Const sURL = "http://localhost/ws/Resultado.txt"
Private Declare Function InternetOpen Lib "WININET" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "WININET" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "WININET" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "WININET" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Sub leer_respuesta(sURL As String)
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
 
    Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
    'Create a buffer for the file we're going to download
    sBuffer = Space(1000)
    'Create an internet connection
    hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
    'Open the url
    hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
    'Read the first 1000 bytes of the file
    InternetReadFile hFile, sBuffer, 1000, Ret
    'clean up
    InternetCloseHandle hFile
    InternetCloseHandle hOpen
    'Show our file
    MsgBox sBuffer
End Sub

yo se que no es la mejor forma pero ni con los ejemplos de guille pude realizarlos gracias por su opiniones y sugerencias
No he fracasado. He encontrado 10000 soluciones que no funcionan.

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #10 en: Abril 19, 2015, 10:50:33 am »
Estimado aedEric
 
Con este código ya te puedes comunicar con el webservice, pero el webservice me está retornando que la estructura XML no es válida. Hay que investigar un poco sobre NuSOAP que es el framewrok con el que esta implementado dicho webservice.
Código: [Seleccionar]
Private Sub cmdCallWebService_Click()
  Dim strUrl As String
  Dim strReq As String
  Dim objDom As Object
  Dim objXmlHttp As Object
 
  ' La URL de tu servicio web
  strUrl = "http://taecel.com/ConexionCorporativa.php?wsdl"
   
  ' Cuerpo del POST request
  strReq = "<?xml version=" & """1.0""" & " ?>" & _
            "<Request>" & _
              "<PosLogin>" & _
                  "<PosName>1234567890</PosName>" & _
                  "<UserName>Tae123456</UserName>" & _
                  "<UserPass>c32d196fea8fcc528dfcb65456829b20</UserPass>" & _
              "</PosLogin>" & _
              "<PosMethod>" & _
                  "<MethodName>ReservaTopUp</MethodName>" & _
                      "<Params>" & _
                          "<CountryCode>52</CountryCode>" & _
                          "<PhoneNumber>5555555555</PhoneNumber>" & _
                          "<CardID>1</CardID>" & _
                      "</Params>" & _
              "</PosMethod>" & _
            "</Request>"
  ' Carcar el Request XML
  Set objDom = CreateObject("MSXML2.DOMDocument")
  objDom.async = False
  objDom.loadXML strReq
 
  ' Realizar el request
  Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")
  With objXmlHttp
    .Open "POST", strUrl, False
    .setRequestHeader "Content-Type", "text/xml;charset=UTF-8"                  '<-- SOAP 1.1
    '.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"    '<-- SOAP 1.2
    .setRequestHeader "SOAPAction", "http://taecel.com/ConexionCorporativa.php/RequestWS"
    .send objDom.XML
    Debug.Print .responseText & vbCrLf
   
    Set objXmlHttp = Nothing
    Set objDom = Nothing
  End With
End Sub
Saludos desde algún lugar de Lima-Perú
Saludos, desde algún lugar de Lima-Perú

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #11 en: Abril 19, 2015, 01:50:21 pm »
 :) hola amigo mucho gusto en saludarte te agradezco mucho el que te tomes el tiempo y la voluntad de apoyarme con tus comentarios aportaciones y sugerncias fijate que probe el codigo que me hiciste favor de proporcionarme pero a la hora de ejecutarlo simplemente no sucede nada no retorna abasolutamente nada no se que estare haciendo mal veo que como declaras todo no es necesario ninguna referencia  :( no se algo estare haciendo mal amigo
No he fracasado. He encontrado 10000 soluciones que no funcionan.

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #12 en: Abril 19, 2015, 02:19:01 pm »
Estimado ardEric

Con la finalidad de hacer el código lo más simple posible, estoy usando CreateObject para no tener que declarar referencias.
La contraseña Tae123456 la estoy colocando encriptada con MD5 c32d196fea8fcc528dfcb65456829b20, al final estaré publicando el código de la clase MD5

En la venta Inmediato (Ctrl+G) debería de poder ver la respuesta, en formato XML, del webservice (ver imagen). En dicha respuesta el webservice está indicando que la estructura XML no es válida. Pero al margen si el resultado es bueno o malo, ya estas conversando con el webservice directo desde VB6.

 
Saludos, desde algún lugar de Lima-Perú
Saludos, desde algún lugar de Lima-Perú

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #13 en: Abril 19, 2015, 02:29:24 pm »
hola amigo gracias por tu interes para mi es un tema muy interesante desgraciadamente por mi bajo conocimiento en la materia hay cosas en las que me trabo una pregunta aqui

Código: (VB) [Seleccionar]
"<?xml version=" & """1.0""" & " ?>" & _
no tendria que ser asi

Código: (VB) [Seleccionar]
<?xml version="1.0" ?>
no puedo probarlo yo por que ami no me funciona el codigo que me hiciste favor de proporcionar

simplemente no se ejecuta nada como si no hiciera nada  :(
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Pasar valores de variables de vb6 a php
« Respuesta #14 en: Abril 19, 2015, 02:33:43 pm »
pd. lo he probado donde aqui en mi casa con windows 7 y en una maquina virtual xp ambos 32 bits pero parace no ejecutarse nada desgraciadamente
se  me paso o asi amigo

Código: (VB) [Seleccionar]
"<?xml version=" & ""1.0"" & " ?>" & _
No he fracasado. He encontrado 10000 soluciones que no funcionan.