PHP - Uso de SOAPCLIENT

 
Vista:
sin imagen de perfil

Uso de SOAPCLIENT

Publicado por Luis Moises (4 intervenciones) el 07/07/2016 21:23:31
Buenas a tod@s,
Soy nuevo tanto en PHP como en el uso de SOAP.
Aquí le presento mi código para acceder a una tpv.
El caso es que me dice: SOAP-ERROR: Parsing WSDL: Couldn't load from y no encuentro el error.
El error, según mis pocos conocimientos de PHP se encuentra en esta línea: $client=new SoapClient($wsdl_string); //,$soap_args);

Tanto si la pongo como esta o si la pongo: $client=new SoapClient($wsdl_string,$soap_args);
Aquí le pongo el script.

Nota: 'redsysHMAC256_API_WS_PHP_5.2.0/apiRedsysWs.php es una libreria que se puede bajar, pero aquí esta comprimida.
Gracias mil


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
include_once 'redsysHMAC256_API_WS_PHP_5.2.0/apiRedsysWs.php';
if(isset($_POST["btnPagar"]))
{
 	 $miObj=new RedsysAPIWs;
	 $clavecomercioprueba='sq7HjrUOBfKmC576ILgskD5srU870gJ7';
 
	 $CodigoPersonal='123456';
	 $Notarjeta='4548 8120 4940 0004';
	 $Fechacaducidad='12/20';
	 $Order='34567';
	 $signaturever='HMAC_SHA256_V1';
	 $Codigocvc2='123';
	 $Tipomoneda='978';
	 $Totalimporte='1.00';
	 $Nocomercio='999008881';
	 $Noterminal='001';
	 $tipotrans='A';
	 $DesctipoPago='PAGO';
	 $Notimestamp=date("Ymd His");
	 $codigoclave='9rayito1953';
	 $finalcadena = "$DesctipoPago$Notarjeta$Fechacaducidad$Totalimporte$Tipomoneda$Nocomercio$Noterminal$Notimestamp$codigoclave";
	 $Lafirma = sha1($finalcadena);
 
	$xml = new DomDocument('1.0', 'UTF-8');
 
	$datosentrada = $xml->createElement('DATOSENTRADA');
    $datosentrada = $xml->appendChild($datosentrada);
 
	$dsamount = $xml->createElement('DS_MERCHANT_AMOUNT',$Totalimporte);
    $dsamount= $datosentrada->appendChild($dsamount);
 
	$dsorder = $xml->createElement('DS_MERCHANT_ORDER',$Order);
    $dsorder= $datosentrada->appendChild($dsorder);
 
	$dscode = $xml->createElement('DS_MERCHANT_MERCHANTCODE',$Nocomercio);
    $dscode= $datosentrada->appendChild($dscode);
 
	$dscurrency = $xml->createElement('DS_MERCHANT_CURRENCY',$Tipomoneda);
    $dscurrency= $datosentrada->appendChild($dscurrency);
 
	$dspan = $xml->createElement('DS_MERCHANT_PAN',$Notarjeta);
    $dspan= $datosentrada->appendChild($dspan);
 
	$dscvv2 = $xml->createElement('DS_MERCHANT_CVV2',$Codigocvc2);
    $dscvv2= $datosentrada->appendChild($dscvv2);
 
	$dstipotrans = $xml->createElement('DS_MERCHANT_TRANSACTIONTYPE',$tipotrans);
    $dstipotrans= $datosentrada->appendChild($dstipotrans);
 
	$dsterminal = $xml->createElement('DS_MERCHANT_TERMINAL',$Noterminal);
    $dsterminal= $datosentrada->appendChild($dsterminal);
 
	$dsfechaexp = $xml->createElement('DS_MERCHANT_EXPIRYDATE',$Fechacaducidad);
    $dsfechaexp= $datosentrada->appendChild($dsfechaexp);
 
	$xml->formatOutput = true;
    $el_xml = $xml->saveXML();
    $xml->save('operaciones2.xml');
 
	ini_set("default_socket_timeout", 6000);
	ini_set("soap.wsdl_cache_enabled", "0");
	ini_set("soap.wsdl_cache", "0");
	ini_set("display_errors","On");
	ini_set("track_errors","On");
	ini_set("soap.wsdl_cache_enabled","0");
 
	$doc=new DomDocument();
	$doc->load('operaciones2.xml');
 
	$file = '/xampp/htdocs/tpv/operaciones2.xml';
	if (file_exists($file)) {
		$xml = simplexml_load_file($file);
		//print_r($xml);
	} else {
		exit('Error Cargando Archivo... '.$file);
	}
 
	//$wsdl = trim(file_get_contents('https://sis-t.redsys.es:25443/sis/operaciones'));  
	$wsdl_string = trim(file_get_contents('https://sis-t.redsys.es:25443/sis/services/SerClsWSEntrada?wsdl'));
 
	$soap_args =  array(
        'soap_version'=>SOAP_1_2,
        'exceptions'=>true,
        'trace'=>1,
        'cache_wsdl'=>WSDL_CACHE_NONE);
	try
	{
		$client=new SoapClient($wsdl_string); //,$soap_args);
		$resultado=$client ->trataPeticion($xml);
		print_r($resultado);
	}
	catch (Exception $e){
		echo $e ->getMessage();
	}
  }
?>
<!DOCTYPE html>
<html>
 
    <head>
        <title>TPV </title>
			<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    </head>
 
    <body>
      <form class="form-horizontal" method="post">
         <button type="submit" name="btnPagar" id="btnPagar">Pagar</button>
            <footer>
                <p>Luis Moisés Rojas P 2016</p>
            </footer>
       </form>
   </body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder